这个问题的标题很矛盾,因为我试图在非关系数据库中实现关系……:)
但我的意思是如何在使用 MongoDB 的应用程序模型类中 定义实体之间的关联。
使用 JPA 我经常使用 @ManyToMany
或 @OneToMany
注释来定义对象之间的关系。 Spring Data MongoDB 中有类似的东西吗?
研究 MongoDB 我意识到关联有两种可能的方法: References 和 Embedded Data 。
Spring Data用的是哪一个?是否可以配置关联模式?
原文由 davioooh 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以使用 @DBRef 注释将引用的类保存在单独的集合中,否则文档将保存在同一文档 (json) 中。使用 DBRef 需要额外查询 mongodb 驱动,你应该考虑这个来分析性能问题。
来自 spring 数据文档
@DBRef - 应用于字段以指示将使用 com.mongodb.DBRef 存储它。
7.3.4 使用 DBRefs 映射框架不必存储嵌入在文档中的子对象。您还可以单独存储它们并使用 DBRef 来引用该文档。当从 MongoDB 加载对象时,这些引用将被急切地解析,您将取回一个映射对象,看起来就像它已嵌入存储在您的主文档中一样。