Kotlin 具有非空嵌入属性的Android Room fetch相关实体
Florina()的这篇文章介绍了一种通过定义复合类简化一对多查询的好方法Kotlin 具有非空嵌入属性的Android Room fetch相关实体,kotlin,android-room,Kotlin,Android Room,Florina()的这篇文章介绍了一种通过定义复合类简化一对多查询的好方法 class UserAndAllPets { @Embedded var user: User? = null @Relation(parentColumn = “userId”, entityColumn = “owner”) var pets: List<Pet> = ArrayList() } @Transaction @Query(“SELECT *
class UserAndAllPets {
@Embedded
var user: User? = null
@Relation(parentColumn = “userId”,
entityColumn = “owner”)
var pets: List<Pet> = ArrayList()
}
@Transaction
@Query(“SELECT * FROM Users”)
List<UserAndAllPets> getUsers()
类用户和所有宠物{
@嵌入
变量用户:用户?=null
@关系(parentColumn=“userId”,
entityColumn=“所有者”)
变量pets:List=ArrayList()
}
@交易
@查询(“从用户中选择*)
列出getUsers()
这允许您在一个查询中获取所有带宠物的用户。然而,当我每次使用它时都必须对user
进行空检查时,它开始变得烦人起来。另外,我不希望查询返回没有用户的UserAndAllPets
对象。我是否可以在查询中强制执行此规则,而不是在使用用户和所有宠物时执行安全检查