【发布时间】:2015-05-12 09:45:28
【问题描述】:
对于Java枚举类型,我了解到MongoDB有两种解决方案:serialization和using Jackson’s ObjectMapper。 MongoRepository 是否可以使用这些方法中的任何一种处理枚举数据类型,或者我必须编写自定义存储库?
【问题讨论】:
标签: spring-data spring-data-mongodb
对于Java枚举类型,我了解到MongoDB有两种解决方案:serialization和using Jackson’s ObjectMapper。 MongoRepository 是否可以使用这些方法中的任何一种处理枚举数据类型,或者我必须编写自定义存储库?
【问题讨论】:
标签: spring-data spring-data-mongodb
是的,Spring Data MongoDB 支持枚举。只需在您的域模型中使用它们即可。
【讨论】:
Spring Data Mongodb 可以将枚举序列化为字符串,使用枚举的名称作为值。假设它使用文章http://www.vineetmanohar.com/2010/01/3-ways-to-serialize-java-enums/ 中的第二种方法。恕我直言,这不能被认真对待,因为在数据库中存储枚举的唯一正确方法是同一篇文章中的方法#3,让我引用它:“这种方法涉及为每个枚举常量分配一个明确的用户定义值并在枚举上定义一个 toValue() 和 fromValue() 方法来进行序列化和反序列化。”。所以,Spring Data Mongodb 不支持枚举。
【讨论】: