Room - 为什么在 @ForeignKey 上使用 @Relation?

Big*_*air 6 android android-sqlite android-room

我目前的目标是在我的数据中建立一对多的关系。

从各种教程中,我了解到我有两种主要的方法来做到这一点。

  1. 创建两个实体并让孩子使用@ForeignKey注释

  2. 创建这两个实体一个额外的 POJO,@Embedded用于父实体并将子实体@Relation列表绑定到 父实体

因此,使用 Relation 似乎是额外的努力。或者我错过了什么?
Relation 的一大优势是:

当 Pojo 从查询中返回时,它的所有关系也由 Room 获取。

第一种方法哪个不那么容易?

Big*_*air 3

从高塔姆的评论和进一步阅读中,我现在这样理解:
@Relation是一个方便的选项,可以更轻松地检索连接的实体。这种便利的代价是放弃控制父条目删除以及其他可能发生的事情的能力。