从会议室数据库获取特定实体的最佳方法是什么

时间:2019-08-06 02:06:03

标签: kotlin android-room

前段时间我正在做一个项目,用户可以选择一条路线/路线并在单独的页面上查看其信息,但是在提取房间数据库中存储的特定实体的信息时遇到了问题。我最终没有找到解决问题的方法,所以我完全改变了方法,并通过启动活动的意图传递了必要的信息,而不仅仅是通过搜索数据库来获取信息。

我已经尝试在这里How to get a specific Entity in Room询问问题,但是似乎没人看到问题出在哪里,所以我正在更改问题。

我现在想知道的是从Kotlin的Room数据库中获取特定实体的最佳方法是什么。

1 个答案:

答案 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()
    }

}