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

新手上路,请多包涵

这个问题的标题很矛盾,因为我试图在非关系数据库中实现关系……:)

但我的意思是如何在使用 MongoDB 的应用程序模型类中 定义实体之间的关联

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

研究 MongoDB 我意识到关联有两种可能的方法: ReferencesEmbedded Data

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

原文由 davioooh 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 843
2 个回答

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

来自 spring 数据文档

@DBRef - 应用于字段以指示将使用 com.mongodb.DBRef 存储它。

7.3.4 使用 DBRefs 映射框架不必存储嵌入在文档中的子对象。您还可以单独存储它们并使用 DBRef 来引用该文档。当从 MongoDB 加载对象时,这些引用将被急切地解析,您将取回一个映射对象,看起来就像它已嵌入存储在您的主文档中一样。

原文由 Ignacio A. Poletti 发布,翻译遵循 CC BY-SA 3.0 许可协议

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

原文由 Ledher bay 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题