Я надеюсь, что это решит проблему

ываясь на моем предыдущем вопросе (Комната постоянства Android: «Не могу понять, как читать это поле из курсора»), который я получил на работу благодаря обратной связи, я реализовал тот же пример в Kolin (см. код ниже). Мне пришлось внести некоторые незначительные изменения, такие как параметры, которые теперь передаются в запрос, которые должны быть переданы как «p0», «p1» и т. Д. Теперь в Kotlin я получаю следующую ошибку, связанную с классом UserWithPets:

ошибка: не удается понять, как прочитать это поле из курсора. e: private java.util.List домашние животные;

@Dao
interface UserDAO {   

    @get:Query("SELECT * FROM user")
    val all: LiveData<List<User>>

    @Insert
    fun insertUser(user: User) //single one

    @Insert(onConflict = OnConflictStrategy.REPLACE)
    fun insertUsers(vararg users: User)

    @Query("SELECT * FROM User")
    fun loadUsersWithPets(): LiveData<List<UserWithPets>>

}


@Entity
class Pet( var name: String?,  var ownerId: Int,@PrimaryKey(autoGenerate = true)var id:Int)



@Dao
interface PetDAO {
    @Query("SELECT * FROM pet")
    val all: List<Pet>

    @Query("SELECT * FROM pet WHERE id IN (:p0)")
    fun loadAllByIds(petIds: IntArray): List<Pet>


    @Insert
    fun insert(pet: Pet)

    @Insert
    fun insertAll(vararg pets: Pet)

    @Delete
    fun delete(user: Pet)
}


class UserWithPets {
    @Embedded
    var user: User? = null

    @Relation(parentColumn = "id", entityColumn = "ownerId", entity = Pet::class)
    var pets: List<Pet>? = null
}

Похоже, что если я напишуUserWithPets класс в Java, он будет работать нормально, но не работает, когда написано на Kotlin Есть идеи, что не так? Это проблема с обработкой аннотаций?

Ответы на вопрос(2)

Ваш ответ на вопрос