如何解决Room如何使用外键在3张桌子上取书
我有一个名为User的表。该表具有两个外键帐户和商店(均为1..1关系)。 因此,我创建了一个名为UserAndAccount的数据类和另一个名为UserAndShop的数据类。
我现在如何获取所有这些数据(等于UserAndAccountAndShop)?
User.kt
@Entity(
tableName = "User"
)
data class User(
@PrimaryKey(autoGenerate = false)
@SerializedName("unique_id")
var uniqueID: String,@SerializedName("email")
var email: String = "",@SerializedName("username")
var username: String = ""
)
Account.kt
@Entity(
tableName = "Account"
)
data class Account(
@PrimaryKey(autoGenerate = true)
@SerializedName("account_id")
var accountID: Int,@SerializedName("user_id")
var userOwnerID: String = "",@SerializedName("token")
var token: String = ""
)
Shop.kt
@Entity(
tableName = "Shop"
)
data class Shop(
@PrimaryKey(autoGenerate = true)
@SerializedName("shop_id")
var shopID: Int,@SerializedName("shop_owner_id")
var shopOwnerID: String,@SerializedName("shop_name")
var shopName: String = ""
)
UserAndAccount.kt
data class UserAndAccount(
@Embedded val user: User,@Relation(
parentColumn = "uniqueID",entityColumn = "userOwnerID"
)
val account: Account
)
UserAndShop.kt
data class UserAndShop(
@Embedded val user: User,entityColumn = "shopOwnerID"
)
val shop: Shop
)
解决方法
对于任何寻求答案的人:
您可以将多个@Relation添加到数据类中。 所以我创建了这个数据类:
UserAndAccountAndShop.kt
data class UserAndAccountAndShop(
@Embedded val user: User,@Relation(
parentColumn = "uniqueID",entityColumn = "accountOwnerID"
)
val account: Account,entityColumn = "shopOwnerID"
)
val shop: Shop
)
就是这样!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。