首页 > 解决方案 > 如何创建双重关系房间

问题描述

我必须在房间里建立这种关系,但我不知道该怎么做。

我创建了所有表,但我不知道如何创建“通知”和“user_access_to_company”之间的双重关系

在此处输入图像描述

标签: androidkotlinandroid-room

解决方案


看起来在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
)


推荐阅读