如果Node LeafType1
LeafType2是AbstractMyCollectionNode的子类,那么事情将会很容易。只需像编写时那样声明存储库:
public interface MyCollectionRepository extends MongoRepository<AbstractMyCollectionNode, String> { }
我们已经在一个项目中做到了这一点,并且效果很好。Spring Data将在mongodb集合中的文档中添加一个名为“
_class”的属性,以便可以指出要实例化的类。
存储在一个集合中的文档可能有一些相似之处,也许您可以为它们提取一个通用类。
以下是从我们的项目之一复制的一些代码:
实体:
public abstract class document { private String id; public String getId() { return id; } public void setId(String id) { this.id = id; } ....
public class WebClipdocument extends document { private String digest; ...
仓库:
public interface documentDao extends MongoRepository<document, String>{...
并且 ,如果您的mongodb集合中的文档不具有“
_class”属性。您可以使用Converter:
在存储和查询对象时,让MongoConverter实例处理所有Java类型到DBObjects的映射很方便。但是,有时您可能希望MongoConverter完成大部分工作,但允许您有选择地处理特定类型的转换或优化性能。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)