我一直在阅读MongoDB
documentation,Spring
默认情况下会向存储的数据添加 _class 字段。有没有办法使用此信息进行类型推断?
例如:有一个抽象类Animal,有三个子类Dog,Cat,Bird。假设您有一个包含动物列表的动物园。在数据库中存储这些Zoo对象。是否有任何功能可以让 List<Animal>
回到可以升级的动物身上?
我正在使用Spring
,所以我更倾向于使用spring-data-mongodb
的解决方案。但外部映射库也可以。我不喜欢自己写它,因为它似乎是基本的映射功能。
答案 0 :(得分:3)
确保将您提到的所有类型映射到同一集合中(例如,使用@Document注释)。然后,您可以简单地执行针对将Animal交给MongoTemplate上的相应方法的集合的查询。然后,底层转换器将根据_class中存储的信息自动实例化正确的类型。这同样适用于Spring Data MongoDB存储库的使用。