Florina(https://medium.com/google-developers/7-pro-tips-for-room-fbadea4bfbd1)的这篇帖子介绍了一种通过定义复合类来简化一对多查询的好方法
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()
这使您可以在单个查询中获取所有带宠物的用户。但是,每次我每次使用user
都必须进行空检查时,它就变得很烦人。另外,我不希望查询在没有用户的情况下返回UserAndAllPets
对象。无论如何,我在使用UserAndAllPets
时是否可以在查询中强制执行此规则,而不是进行安全检查?