Spring Data MongoDB是否支持枚举?

vic*_*vic 12 spring-data spring-data-mongodb

对于Java枚举类型,我了解到MongoDB有两种解决方案:序列化使用Jackson的ObjectMapper.MongoRepository可以使用这些方法中的任何一种使用枚举数据类型,或者我必须编写自定义存储库吗?

Oli*_*ohm 12

是的,Spring Data MongoDB支持枚举.只需在您的域模型中使用它们即可.

  • 谢谢奥利弗。发表问题后,我昨晚写了单元测试,所有测试均通过。发布任何内容之前,我应该做更多的工作。现在,我需要弄清楚如何使用Javascript代码制作Java枚举数据。那是另一个故事。 (2认同)

Igo*_*hin 7

Spring Data Mongodb 可以使用枚举的名称作为值将枚举序列化为字符串。比方说,它使用文章http://www.vineetmanohar.com/2010/01/3-ways-to-serialize-java-enums/中的第二种方法。恕我直言,这不能被认真对待,因为在数据库中存储枚举的唯一正确方法是同一篇文章中的方法#3,让我引用它:“这种方法涉及为每个枚举常量分配一个显式的用户定义值并在枚举上定义 toValue() 和 fromValue() 方法来执行序列化和反序列化。”。因此,Spring Data Mongodb 不支持枚举。