我试图只使用偏移量和无限制来查询sql lite数据库.
SELECT [Id], [Name], [IntValue], [IntNulableValue] FROM [Product] OFFSET 10
Run Code Online (Sandbox Code Playgroud)
我有限制时可以进行偏移查询(LIMIT 10 OFFSET 10).
这是sql lite给我的错误.
SQLite error near "10": syntax error
Run Code Online (Sandbox Code Playgroud) 我试图找出通过 Room 按 ID 获取单行的最佳方法。我已经从指南中复制了有关如何获取实体中的所有行(Workout以及所有连接的实体)的代码,这对于填充回收器视图非常有用。
但是,当前,当我需要深入了解一个时,我在存储库中的猜测代码是
@WorkerThread
suspend fun getWorkoutById(id: Long): LiveData<WorkoutTree> {
return workoutDao.getWorkoutById(id)
}
Run Code Online (Sandbox Code Playgroud)
在 DAO 中
@Transaction
@Query("SELECT * FROM WORKOUTS WHERE id=:id")
fun getWorkoutById(id: Long): LiveData<WorkoutTree>
Run Code Online (Sandbox Code Playgroud)
当然,我repository.getWorkoutById(myId)从我的 ViewModel 调用,这样我就可以填充数据并从我的 Activity/Fragment 引用它。
但我试图弄清楚我是否走在正确的轨道上,以及获取这个的最佳方式。老实说,它是手机本地的数据库,因此不应该存在需要实时更新的问题。
直接序列化 Recyclerview 中列出的所有行中点击的对象并将其传递到我的活动中而不用费心通过 ID 获取会更好吗?
几乎我在网上找到的有关 Room 和 Android 开发的每个示例都提供了获取所有行并使用 LiveData 的示例,并且存储库具有一个公共属性 LiveData>,该属性由从实体中获取所有行的初始 DAO 填充。
我很难在心理上将这个例子翻译成只获取一行的例子。
我实际上没有任何功能代码可以分享,因为我无法真正弄清楚如何在 Kotlin 和 Room 等中构建它。我以前从未编写过 Android 应用程序,并且拥有 Python、JS、Scala 的函数式编程背景,因此我很困惑 Kotlin 指南和 Android 指南如何建议您使用用于解耦所有内容的所有附加类和接口来完成此操作。电话应用程序。