房间:如何检查行是否存在

Room: how to check whether row exists

在我的存储库 class 中,我只想在房间 table 中存在 none 时获取数据。如何检查 table?

中是否存在任何行

正如 ADM 所建议的,您可能会幸运地使用 COUNT() 来计算 table 中的实际行数。

但是,我建议无论如何都只获取数据 - 如果 none 存在 Room 将简单地 return 一个空列表,这不应该比请求行数效率低(如果反正是0)。

作为一个优点,您可以编写更少的代码来获得您想要的功能! :-)

您可以使用 EXISTS 运算符和 return 只需 Boolean:

@Query("SELECT EXISTS(SELECT * FROM table)")
fun hasItem(): Boolean

使用EXISTS运算符,return1表示true,0表示false

如果您想检查某些特定行和某些条件,请执行此技巧:

@Query("SELECT EXISTS(SELECT * FROM tableName WHERE id = :id)")
fun isRowIsExist(id : Int) : Boolean

或者简单地使用这个:

@Query("SELECT EXISTS(SELECT * FROM tableName)")
fun isExists(): Boolean