Как создать комнату с двойными отношениями

#android #kotlin #android-room

#Android #kotlin #android-комната

Вопрос:

Я должен создать эту связь в room, но я не знаю, как это сделать.

Я создал все таблицы, но я не знаю, как создать двойное отношение между «notification» и «user_access_to_company»

введите описание изображения здесь

Ответ №1:

Похоже, что в user_access_to_company таблице у вас есть составной первичный ключ (т. Е. первичный ключ состоит из более чем одного поля).

Что касается notification таблицы, похоже, что она включает в себя составной внешний ключ.

Библиотека комнат поддерживает оба типа составных ключей:

 @Entity(primaryKeys = ["firstName", "lastName"]) // <-- Composite primary key
data class UserAccessToCompany(
    val user_idUser: Int,
    val company_idcompany: Int
)

@Entity(foreignKeys = [ForeignKey(
    entity = UserAccessToCompany::class, 
    parentColumns = arrayOf("user_idUser", "company_idcompany"), 
    childColumns = arrayOf("user_access_to_company_idUser", "user_access_to_company_idcompany"))
]) // <-- Composite primary key
data class Notification(
    @PrimaryKey val idNotification: Int,
    // ...............
    val user_access_to_company_idUser: Int,
    val user_access_to_company_idcompany: Int
)