Ответ
В Room для связи таблиц используйте аннотации @Relation, @ForeignKey или создание промежуточной таблицы для many-to-many связи.
1:1 или 1:many (с ForeignKey):
@Entity(foreignKeys = [ForeignKey(
entity = User::class,
parentColumns = ["id"],
childColumns = ["userId"],
onDelete = CASCADE
)])
data class Order(
@PrimaryKey val id: Long,
val userId: Long
)
data class UserWithOrders(
@Embedded val user: User,
@Relation(
parentColumn = "id",
entityColumn = "userId"
)
val orders: List<Order>
)
Many-to-many (через junction таблицу):
@Entity
data class Playlist(
@PrimaryKey val id: Long
)
@Entity
data class Song(
@PrimaryKey val id: Long
)
@Entity(primaryKeys = ["playlistId", "songId"])
data class PlaylistSongCrossRef(
val playlistId: Long,
val songId: Long
)