我知道Room允许我们使用@Relation
关键字建立1-N关系。尽管我想知道是否可以对这种关系应用条件。
假设我有以下POJO
class UserAndPets {
@Embedded
lateinit var user: User
@Relation(entityColumn = "ownerId", parentColumn = "userId")
lateinit var pets: List<Pets>
}
interface UserDao {
@Query("SELECT * FROM users WHERE userId = :userId LIMIT 1")
fun getUserAndPetsForUserId(userId: String): UserAndPets?
}
以上方法使我可以查询一个用户及其所有宠物。尽管我可以通过某种方式查询用户及其最近的10只宠物?还是某个用户及其所有属于特定类型的宠物?
谢谢
答案 0 :(得分:0)
如果“宠物”中的“ ID”字段是自动递增的,则此查询应为您提供所需的结果:
@Query("SELECT * FROM pets WHERE ownerId = :userId ORDER BY Id DESC LIMIT 10")
顺便说一句,您的“用户”查询中的“ LIMIT 1”是不必要的,该查询将始终返回单个用户。