Что делает @Embedded, так это создает для вас столбцы, которые встроенный объект имеет в таблице объекта, который вы использовали. Если вы сделаете это, у вас будут одинаковые данные для гостя в двух таблицах.
могу представить отношение многих ко многим с Room? например У меня есть "Гость" и "Бронирование". В резервации может быть много гостей, а гость может быть частью многих бронирований.
Вот мои определения сущностей:
@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>
)
С вышеупомянутым я получаю ошибку компилятора:
Не могу понять, как читать это поле из курсора.
Я не смог найти рабочий образец@Relation
.