房间:如何检查行是否存在
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
在我的存储库 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