Sam*_*zar 6 android android-room android-jetpack
当我在 DAO 类中编写查询时,我可以使用另一个类(或枚举)中的静态变量吗?如果可以的话请告诉我如何做?
我的意思是这样的:
public enum MessageState {
NOTHING,
PENDING,
SEND
}
Run Code Online (Sandbox Code Playgroud)
在 DAO 类的查询语句中:
@Query("SELECT * FROM message_db WHERE state = :MessageState.PENDING.ordinal()")
Run Code Online (Sandbox Code Playgroud)
将枚举作为默认参数传递给函数:
@Query("SELECT * FROM message_db WHERE state = :state")
fun getMessages(state: Int = MessageState.PENDING.ordinal()): List<Message>
Run Code Online (Sandbox Code Playgroud)
这样您就不需要在每次调用时都提供它,但可以获得相同的结果。
您可以像 Java 中的普通字符串一样连接它:
@Query("SELECT * FROM message_db WHERE state = " + MessageState.PENDING.ordinal() + ")"
Run Code Online (Sandbox Code Playgroud)
如果您使用 Kotlin:
@Query("SELECT * FROM message_db WHERE state = ${MessageState.PENDING.ordinal()}")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2096 次 |
| 最近记录: |