Android Room DB - 在查询中使用另一个类的静态变量

标签 android android-room android-jetpack

当我在 DAO 类中编写查询时,我可以使用另一个类(或枚举)中的静态变量吗?如果可以的话请告诉我怎么做?

我的意思是这样的:

public enum MessageState {
   NOTHING,
   PENDING,
   SEND
}

在 DAO 类的查询语句中:

@Query("SELECT * FROM message_db WHERE state = :MessageState.PENDING.ordinal()")

最佳答案

将枚举作为默认参数传递给函数:

@Query("SELECT * FROM message_db WHERE state = :state")
fun getMessages(state: Int = MessageState.PENDING.ordinal()): List<Message>

这样您就不需要在每次调用时都提供它,但可以获得相同的结果。

关于Android Room DB - 在查询中使用另一个类的静态变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54749082/

相关文章:

php - 插入特殊字符/PHP + MySql + Android

android - 房间的 `onDelete = CASCADE` 在迁移期间不工作

android - 如何在 Room 中插入具有一对多关系的实体

android - 从 AndroidViewModel 扩展时如何使用 ViewModelProvider.Factory

android - 如何在 gradle 中生成 Dagger (v1) 对象图 (*.dot)?

android - 使用 Espresso 和 RxJava 测试无限滚动 RecyclerView

java - 如何将现有的 SQLite3 数据库导入 Room?

android - 在 Jetpack Compose 中是否可以将背景图像添加到填充所有列的列(如填充颜色)?

java - 将 Android 项目导入 Eclipse 时出错

java - 如何在匿名类java中分配变量值