Комната Android накладывает ограничение на отношение - PullRequest
0 голосов
/ 10 сентября 2018

Мне известно, что Room позволяет нам устанавливать отношения 1-N с ключевым словом @Relation. Хотя я хотел бы знать, возможно ли применить условия к этим отношениям.

Допустим, у меня есть следующий 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 домашних животных? Или Пользователь и все его Домашние животные, которые будут определенного типа?

Спасибо

1 Ответ

0 голосов
/ 17 сентября 2018

Если поле Id в разделе «Домашние животные» автоматически увеличивается, то этот запрос должен дать вам искомый результат:

@Query("SELECT * FROM pets WHERE ownerId = :userId ORDER BY Id DESC LIMIT 10")

Кстати, «LIMIT 1» в вашем запросе «Users» не нужензапрос всегда будет возвращать одного пользователя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...