我想将狗列出到RecylerView中。每只狗与主人都有“一对多”的关系。因此实体将是:
所有者实体
@Entity
@TypeConverters(GithubTypeConverters::class)
class Owner(
@PrimaryKey(autoGenerate = false)
@field:SerializedName("id")
@field:Expose
var id: Int,
@field:SerializedName(value = "name")
var name: String)
狗实体
@Entity
@TypeConverters(GithubTypeConverters::class)
class Dog(
@PrimaryKey(autoGenerate = false)
@field:SerializedName("id")
@field:Expose
var id: Int,
@field:SerializedName(value = "ownerId")
var ownerId: Int,
@field:SerializedName(value = "name")
var name: String)
对于每个实体,我都有一个DAO
所有者DAO
@Dao
abstract class OwnerDao {
@Query("SELECT * FROM Owner")
abstract fun findAll(): LiveData<List<Owner>>
@Insert(onConflict = OnConflictStrategy.REPLACE)
abstract fun inserOwners(ownersList: List<Owner>)
}
狗DAO
@Dao
abstract class DogDao {
@Query("SELECT * FROM Dog")
abstract fun findAll(): LiveData<List<Dog>>
@Insert(onConflict = OnConflictStrategy.REPLACE)
abstract fun insertDogs(dogssList: List<Dog>)
}
我需要什么? 创建狗列表,并在每行中显示狗的名称和所有者的名称。
我已经有了Adapter和LiveData(我不在这里发布那些代码,因为问题与此无关)
我一直在阅读,但是没有太多信息。
我遵循了本教程:Relation (Room),该解决方案是为用户提供宠物列表(我需要相反的意思),我认为解释不好。
我想我必须创建一个自定义的Dao。但是我尝试的解决方案没有用。
能请你帮我吗?
谢谢!