Room - 为什么要使用 @Relation 而不是 @ForeignKey?

8
我的当前目标是在我的数据中拥有一个一对多的关系。
从各种教程中,我已经了解到我有两种主要方法来实现这个目标:
1. 创建两个实体并让子实体使用 @ForeignKey 注释。 2. 创建这两个实体和一个额外的 POJO,该 POJO 使用 @Embedded 注释用于父实体,并使用 @Relation 注释将子实体列表与父实体相关联。
因此,使用 @Relation 注释似乎需要额外的工作。或者我有什么遗漏吗? @Relation 的主要优点是什么呢?
引用块如下: 当查询返回 Pojo 时,Room 也会获取其所有关联。
相比第一种方法,这不那么容易吗?

1
简单来说,如果你使用关联,房间将会负责获取列表(即你的一对多关系),而如果你只使用外键,则必须自己制作该列表。 - Gautam
2个回答

2
根据Gautam的评论和进一步阅读,我现在理解它的方式是:
@Relation是一个方便的选项,使检索连接实体更容易。这种便利性的代价是放弃控制父条目删除时发生的事情,可能还有其他一些事情。"最初的回答"

1
当您使用@relation时,它有助于DBMS(数据库管理系统)创建一个树来对数据进行排序和存储。因此,当您想运行任何查询时,它非常有帮助。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接