首页 文章

Spring Data MongoDB:如何实现“实体关系”?

提问于
浏览
19

这个问题的 Headers 是相当矛盾的,因为我试图在非关系数据库中实现关系...... :)

但我的意思是如何在使用MongoDB的应用程序模型类中使用 define associations between entities .

使用JPA我经常使用 @ManyToMany@OneToMany 注释来定义对象之间的关系 . Spring Data MongoDB中有类似的东西吗?

学习MongoDB我意识到这种关联有两种可能的方法: ReferencesEmbedded Data .

Spring Data使用哪一个?是否可以配置关联模式?

2 回答

  • 14

    您可以使用@DBRef批注将引用的类持久保存在单独的集合中,否则文档将保留在同一文档(json)中 . 使用DBRef需要对mongodb驱动程序进行额外查询,您应该考虑这个来分析性能问题 .

    spring data documentation

    @DBRef - 在字段中应用以指示使用com.mongodb.DBRef存储它 .

    7.3.4使用DBRefs映射框架不必存储嵌入在文档中的子对象 . 您也可以单独存储它们并使用DBRef来引用该文档 . 当从MongoDB加载对象时,将急切地解析这些引用,并且您将返回一个映射对象,该对象看起来与嵌入在主文档中的对象相同 .

  • 0

    您可以使用RelMongo框架,它允许通过提供@OneToMany和@OneToOne注释支持来实现关系 .

相关问题