首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在列名相同的情况下,如何表示Android Room的多对多关系?

在列名相同的情况下,如何表示Android Room的多对多关系?
EN

Stack Overflow用户
提问于 2017-06-05 12:47:42
回答 5查看 31.2K关注 0票数 60

如何用Room表示“多对多”关系?我的列名也是一样的。

例如,我有GuestReservationReservation可以有多个Guest,一个Guest可以是许多预留的一部分。

以下是我的实体定义:

@Entity data class Reservation(
    @PrimaryKey val id: Long,
    val table: String,
    val guests: List<Guest>
)

@Entity data class Guest(
    @PrimaryKey val id: Long,
    val name: String,
    val email: String
)

在查看文档时,我遇到了@Relation。不过,我发现它真的很令人困惑。

根据这一点,我想创建一个POJO,并在那里添加关系。因此,在我的示例中,我执行了以下操作:

data class ReservationForGuest(
    @Embedded val reservation: Reservation,
    @Relation(
        parentColumn = "reservation.id", 
        entityColumn = "id", 
        entity = Guest::class
    ) val guestList: List<Guest>
)

在上面的代码中,我得到了编译器错误:

> Cannot figure out how to read this field from a cursor.

我找不到@Relation的工作样本。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44361824

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档