Jae*_*ung 4 android kotlin android-studio android-database android-room
@Dao
interface ExampleDao {
@Query("SELECT * FROM example_table WHERE id = :id")
fun get(id: Int): LiveData<Example>
@Insert(onConflict = OnConflictStrategy.REPLACE)
fun insert(something: Example)
}
Run Code Online (Sandbox Code Playgroud)
当我尝试使用下面的行检查数据库中是否存在某一行时
val exists = dao.get(id).value != null
if (exists) {
...
}
Run Code Online (Sandbox Code Playgroud)
存在变量总是返回 null我知道数据库中已经有该行并且 UI 正确显示了信息。为什么它总是返回 null,我如何检查房间数据库中是否有该行?
Gle*_*val 15
我会通过进行另一个查询来做到这一点,如果该项目存在则返回 true,否则返回 false。
@Query("SELECT EXISTS (SELECT 1 FROM example_table WHERE id = :id)")
fun exists(id: Int): Boolean
Run Code Online (Sandbox Code Playgroud)
并像这样调用它,这样您就不需要检查它是否为空:
val exists = dao.exists(id)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3000 次 |
| 最近记录: |