当我在DAO类中编写查询时,可以使用其他类(或枚举)中的静态变量吗?如果可以的话,请告诉我如何?
我的意思是这样的:
public enum MessageState {
NOTHING,
PENDING,
SEND
}
以及DAO类的查询语句中
@Query("SELECT * FROM message_db WHERE state = :MessageState.PENDING.ordinal()")
答案 0 :(得分:1)
将您的枚举作为默认参数传递给函数:
@Query("SELECT * FROM message_db WHERE state = :state")
fun getMessages(state: Int = MessageState.PENDING.ordinal()): List<Message>
这样,您无需在每次通话时都提供它,而可以获得相同的结果。
答案 1 :(得分:0)
您可以像使用Java中的普通String一样将其连接起来:
@Query("SELECT * FROM message_db WHERE state = " + MessageState.PENDING.ordinal() + ")"
如果您使用的是Kotlin:
@Query("SELECT * FROM message_db WHERE state = ${MessageState.PENDING.ordinal()}")