¿Cómo puedo representar una relación de muchos a muchos con Android Room?
¿Cómo puedo representar una relación de muchos a muchos con Room? p.ej. Tengo "Invitado" y "Reserva". La reserva puede tener muchos invitados y un invitado puede ser parte de muchas reservas.
Aquí están mis definiciones de entidad:
@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
)
Mientras miraba documentos, me encontré@Relation
. Sin embargo, me pareció realmente confuso.
De acuerdo con esto, me gustaría crear un POJO y agregar las relaciones allí. Entonces, con mi ejemplo hice lo siguiente
data class ReservationForGuest(
@Embedded val reservation: Reservation,
@Relation(
parentColumn = "reservation.id",
entityColumn = "id",
entity = Guest::class
) val guestList: List<Guest>
)
Con lo anterior me sale el error del compilador:
No se puede descubrir cómo leer este campo desde un cursor.
No pude encontrar una muestra funcional de@Relation
.