使用_class进行MongoDB类型推断

时间:2013-08-28 18:47:48

标签: spring mongodb spring-data spring-data-mongodb

我一直在阅读MongoDB documentationSpring默认情况下会向存储的数据添加 _class 字段。有没有办法使用此信息进行类型推断

例如:有一个抽象类Animal,有三个子类Dog,Cat,Bird。假设您有一个包含动物列表的动物园。在数据库中存储这些Zoo对象。是否有任何功能可以让 List<Animal> 回到可以升级的动物身上?

我正在使用Spring,所以我更倾向于使用spring-data-mongodb的解决方案。但外部映射库也可以。我不喜欢自己写它,因为它似乎是基本的映射功能。

1 个答案:

答案 0 :(得分:3)

确保将您提到的所有类型映射到同一集合中(例如,使用@Document注释)。然后,您可以简单地执行针对将Animal交给MongoTemplate上的相应方法的集合的查询。然后,底层转换器将根据_class中存储的信息自动实例化正确的类型。这同样适用于Spring Data MongoDB存储库的使用。