gpt4 book ai didi

Android Room 一对多关系查询反向

转载 作者:行者123 更新时间:2023-12-02 11:21:21 24 4
gpt4 key购买 nike

我有两个对象之间的一对多关系。
我有一个 usermany pets .

使用它我可以检索我的对象

data class UserWithPets (
@Embedded
var user: User? = null,

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

用户道:
@Transaction @Query("SELECT * FROM users")
fun getUserWithPets() : LiveData<List<UserWithPets>>

这工作正常。
现在我想获取与每个用户相关联的宠物列表......这将是 PetWithUser .

所以我做了:
data class PetWithUser (
@Embedded
var pet: Pet? = null,

@Relation(parentColumn = "user_id", entityColumn = "id", entity = Pet::class)
var user: User? = null
)

宠物道:
@Transaction @Query("SELECT * FROM pets")
fun getPetsWithUser(): LiveData<List<PetWithUser>>

只要我添加 getPetsWithUser对于代码,我在生成 DataBinding 类时遇到错误。

如何建立一对多关系并获得 petuser ?

编辑:

错误日志:它们是从 DataBinding java 文件中生成的。第二个(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

最佳答案

正确的版本是:

data class PetWithUser (
@Embedded
var pet: Pet,

@Relation(parentColumn = "owner_id", entityColumn = "user_id")
var user: User? = null
)
在哪里
  • owner_id 是 User 的 id定义于 Pet类(class)
  • user_id 与 User 中定义的用户 ID 匹配类(class)
  • 关于Android Room 一对多关系查询反向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52006548/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com