android - 如何使用 Kotlin 从 Room 获取最后一个值?
问题描述
我应该如何从 Room 中只返回一个值?
我在 DAO 中进行了如下查询:
@Query("SELECT * FROM testata WHERE id = (SELECT MAX(id) FROM testata)")
fun selectLast(): Testata
哪个应该返回最后一个插入行,然后在我的存储库中我完成了以下操作:
@WorkerThread
suspend fun lastTestata(): Testata {
return testataDAO.selectLast()
}
在 ViewModal 中,我尝试了以下操作:
fun lastTestata(): Testata = viewModelScope.launch {
return repository.lastTestata()
}
但相反,它需要 Job 而不是 ViewModal 中的 testatafun lastTestata()
那么从 android 的房间获取单个值的正确方法是什么?
解决方案
如果您的 id 是增量的(应该是),您可以使用限制来获取一个寄存器,如下所示:
SELECT * FROM testata ORDER BY ID DESC LIMIT 1
推荐阅读
- javascript - 如何将 Decimal128 值转换为 JavaScript 中的数字?
- jpa - EJB 方法被多次调用
- python - 如何根据另一列的条件/分组删除一列中连续的重复行?
- scala - 从 play 2.1 迁移到 2.6 后上传文件不再起作用
- c++ - 平面和球体光线追踪的交集
- javascript - XMLHttpRequest 没有向 Django 服务器发送 POST 数据
- typescript - Lodash isEqualWith 如何自定义不检查对象的类型?
- python - 如何在 Django 框架中正确显示图像到 html 模板?
- uwp - 由于关键字长度,UWP 应用提交失败
- c# - 比较两个列表:一个包含对象,另一个包含字符串