微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

会议室DB使用@Relation将表A连接到表B,将表B连接到C

如何解决会议室DB使用@Relation将表A连接到表B,将表B连接到C

这似乎是一个基本查询,但我无法通过关系实现。

我们说表A需要与表B联接

data class MasterQuery{
 @Embedded var tableA: TableA,@Relation(
    parentColumn = "table_a_relation",entityColumn = "table_b_details"
 )
 val tableB: TableB
}

现在如何将TableB加入TableC?并从所有三个表中获取MasterQuery结果。

首先不能将嵌入和关联放在同一字段上。

然后这也会失败-

data class MasterQuery{
 @Embedded var tableA: TableA,entityColumn = "table_b_details",entity = SubQuery::class)
   val subQuery: SubQuery
 }

 @Entity
 data class SubQuery{
   @Embedded var tableB: TableB,@Relation(
    parentColumn = "table_b_relation",entityColumn = "table_c_details"
 )
  val tableC: TableC
 }

错误找不到子查询

请帮助我解决这个问题。

解决方法

尝试对您的课程进行以下更正:

data class MasterQuery{
 @Embedded var tableA: TableA,@Relation(
    parentColumn = "table_a_relation",entityColumn = "table_b_details",//entity = SubQuery::class) <---- 1. replace this with TableB class
    entity = TableB::class) 
   val subQuery: SubQuery
 }

 //@Entity  <---- 2. You don't need this
 data class SubQuery{
   @Embedded var tableB: TableB,@Relation(
    parentColumn = "table_b_relation",entityColumn = "table_c_details"
 )
  val tableC: TableC
 }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。