前段时间我正在做一个项目,用户可以选择一条路线/路线并在单独的页面上查看其信息,但是在提取房间数据库中存储的特定实体的信息时遇到了问题。我最终没有找到解决问题的方法,所以我完全改变了方法,并通过启动活动的意图传递了必要的信息,而不仅仅是通过搜索数据库来获取信息。
我已经尝试在这里How to get a specific Entity in Room询问问题,但是似乎没人看到问题出在哪里,所以我正在更改问题。
我现在想知道的是从Kotlin的Room数据库中获取特定实体的最佳方法是什么。
答案 0 :(得分:0)
我查看了您的问题,我认为问题是您试图获取通常返回null的实时数据的值。我有一个类似的问题,我解决了,但从DAO返回了实际实体,并在viewmodel的IO线程中读取了它
DAO:
@Query("select * from groups WHERE groupid =:groupId ")
fun getGroup(groupId:String): Group
存储库:
override suspend fun getGroup(groupId: String): Group {
return runBlocking {
groupDao.getGroup(groupId)
}
}
ViewModel:
fun getGroup(groupID:String):Group{
return runBlocking {
async(Dispatchers.IO) {
groupsRepository.getGroup(groupID)
}.await()
}
}