我想使用公共(public)常量变量 Association.MEMBER_STATUS_APPROVED 通过以下房间查询来查询用户关联列表。
@Query("SELECT * FROM Association WHERE memberStatus = " + Association.MEMBER_STATUS_APPROVED)
LiveData<List<Association>> loadUserAssociations();
但是,room 在构建时给我 [SQLITE_ERROR]。 可以通过用如下参数替换常量变量来重写该查询。
@Query("SELECT * FROM Association WHERE memberStatus = :statusApproved")
LiveData<List<Association>> loadUserAssociations(String statusApproved);
我想知道 Room 是否支持这种字符串连接或字符串格式? (或)我可能遗漏了什么吗?
最佳答案
对于遇到相同问题的人,以下可能是 Kotlin 中的解决方案:
@Query("SELECT * FROM Association WHERE memberStatus = :statusApproved")
loadUserAssociations(statusApproved: String = Association.MEMBER_STATUS_APPROVED): LiveData<List<Association>>
而且我认为它比硬编码或将明显的常量传递给函数更简洁。
关于android - 是否可以在 android Room Query 中使用 StringFormat 或 Constant Variable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53386872/