У меня есть отношение «один ко многим» между двумя объектами.У меня есть, скажем, user
с many
pets
.
. С его помощью я могу получить свой объект
data class UserWithPets (
@Embedded
var user: User? = null,
@Relation(parentColumn = "id", entityColumn = "user_id", entity = Pet::class)
var pets: List<Pet>? = null
)
UserDao:
@Transaction @Query("SELECT * FROM users")
fun getUserWithPets() : LiveData<List<UserWithPets>>
Это работает правильно.Теперь я хочу получить список Pet с каждым ассоциированным пользователем ... Что-то, что будет PetWithUser
.
Итак, я сделал:
data class PetWithUser (
@Embedded
var pet: Pet? = null,
@Relation(parentColumn = "user_id", entityColumn = "id", entity = Pet::class)
var user: User? = null
)
PetDao:
@Transaction @Query("SELECT * FROM pets")
fun getPetsWithUser(): LiveData<List<PetWithUser>>
Как только я добавляю getPetsWithUser
к коду, я получаю ошибки при генерации класса DataBinding.
Как я могу сделать отношение один ко многим и получить pet
с user
?
edit:
Журнал ошибок: они из сгенерированных java-файлов DataBinding.Второй (HomeFragmentDataBinding) не использует PetWithUser
, но вызывает ошибку при добавлении PetWithUser
в код ...
error: cannot find symbol
protected ListItemBinding(DataBindingComponent _bindingComponent, View _root,
^
symbol: class DataBindingComponent
location: class ListItemBinding
error: cannot find symbol
@Nullable ViewGroup root, boolean attachToRoot, @Nullable DataBindingComponent component) {
^
symbol: class DataBindingComponent
location: class FragmentHomeBinding