作者:liu-zebing_284 | 来源:互联网 | 2023-02-03 14:46
我刚刚开始与Room合作,虽然一切看起来都非常直观,但我目前还不清楚我究竟能如何处理关系.
由于SQLite是关系数据库,因此您可以指定对象之间的关系.尽管大多数ORM库允许实体对象相互引用,但Room明确禁止这样做.即使您不能使用直接关系,Room仍然允许您在实体之间定义外键约束.(来源:https://developer.android.com/topic/libraries/architecture/room.html#no-object-references)
你应该如何模拟多对多或一对多的关系?
这在实践中会是什么样子(示例DAO +实体)?
Devrim..
26
您可以使用@Relation
注释来处理Room的关系.
一个便利注释,可以在Pojo中用于自动获取关系实体.当从查询返回Pojo时,它的所有关系也都由Room提取.
见文件.
(谷歌的文档有一些令人困惑的例子.我已经在另一个答案中写了步骤和一些基本的解释.你可以看一下)
1> Devrim..:
您可以使用@Relation
注释来处理Room的关系.
一个便利注释,可以在Pojo中用于自动获取关系实体.当从查询返回Pojo时,它的所有关系也都由Room提取.
见文件.
(谷歌的文档有一些令人困惑的例子.我已经在另一个答案中写了步骤和一些基本的解释.你可以看一下)