Я думаю, что об этом спрашивали несколько раз, но никакого рабочего решения нет.
В комнате есть @Relation
аннотация, которая используется для отношений один ко многим.Это в основном, если у вас есть модели User
и Pet
, так как User
может иметь несколько Pet
s, аннотация @Relation
отлично работает, так как тип возвращаемого значения Pet
s является списком (или установлен).
class UserAndAllPets : User() {
@Relation(parentColumn = "id", entityColumn = "userId")
var pets: List<Pet> = arrayListOf()
}
Проблема в том, что если в моем случае User
и Pet
связаны один к одному.Как у каждого пользователя может быть один питомец.Это означает, что нет смысла использовать @Relation
, так как он поддерживает только список или набор возвращаемых типов.И это совершенно неэффективно, чтобы использовать в качестве списка, даже если я использую его.Поэтому я ищу точное отношение один к одному, где я могу получить результат
class UserAndPet {
var user: User? = null
var pet: Pet? = null
}
Я пробовал использовать несколько методов, а также этот метод (который имеет много голосов, но это не работает).Предположительно,
class UserAndPet {
@Embedded
var user: User? = null
@Embedded
var pet: Pet? = null
}
Должно работать, но я получаю
Не уверен, как преобразовать курсор в тип возврата этого метода (UserAndPet)
Конфликт не возникает, так как я уже использую prefix
для @Embedded
полей.
И, пожалуйста, не могли бы вы не перенаправить мою запись на любой другой пост по переполнению стека, как я пробовал все, но не повезло.
Спасибо