【发布时间】:2017-11-05 19:21:50
【问题描述】:
如何表示与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 的工作样本。
【问题讨论】:
标签: android kotlin android-room android-architecture-components