当我在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>


这样,您无需在每次通话时都提供它,但可以获得相同的结果。

08-17 21:03