当我在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>
这样,您无需在每次通话时都提供它,但可以获得相同的结果。