【发布时间】:2020-10-23 18:20:54
【问题描述】:
现在,我的关系层次结构是 A -> (A -> ... -> A) -> B,其中有一定数量(也可以是 0)的 A 在中间,每个箭头都是一对多的关系。
- 每个
A“树”都将以B结尾。 - 每个
A都有A或B作为孩子(但不是两者都有)
我的实体是:
@Entity(tableName = "table_A")
data class A(
id, // ID of the A
parentAid // ID of the parent A (nullable)
)
@Entity(tableName = "table_B")
data class B(
id, // ID of this B
parentAid // ID of the parent A (non-nullable)
)
目前,我的方法是查询"SELECT COUNT(*) FROM table_A WHERE parentAid = :id" 以获取父母拥有的A 的数量。如果此数字大于 0,请对每个孩子重复 A。否则,运行SELECT * FROM table_B WHERE parentAid = :id 以获取添加到列表中的B 列表。
这是一种有效的做事方式吗? Room 中是否有可以轻松做到这一点的查询?
【问题讨论】:
-
我正面临着确切的问题......你找到任何线索了吗?
-
dirtsimple.org/2010/11/… 看看这个链接,它让你可以在 sql 中提取一行的所有基本子项,然后你可以将房间数据库关系与表 B 建立关系
标签: android sqlite android-room