如何用Room
表示“多对多”关系?我的列名也是一样的。
例如,我有Guest
和Reservation
。Reservation
可以有多个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
的工作样本。
https://stackoverflow.com/questions/44361824
复制相似问题