【发布时间】:2018-11-13 16:13:30
【问题描述】:
我看到了this 的问题。类似的错误。但在我的情况下它是不同的。
在使用 Room 时,我正在创建表格。它工作正常。
@Daointerface
UserDao {
@Query("SELECT * FROM user")
fun getAll(): List<User>
@Insert(onConflict = OnConflictStrategy.REPLACE)
fun insert(user: User)
@Delete
fun delete(user: User)}
但后来我发现所有表名都必须存储在不同的类中。比如表名“user”——>存储在不同的类中。
例如。
class Table {
companion object {
const val USER_TABLE = "user"
}}
但下面的代码不起作用。 它没有从 Table 类中获取表名。给出编译时错误。 “Annotation argument must be a compile time constant”请帮帮我。有什么问题
@Query("SELECT * FROM $Table.USER_TABLE")
fun getAll(): List<User>
【问题讨论】:
-
为什么是负面标记,我不明白。有什么不合逻辑的。
标签: android kotlin android-room android-architecture-components android-jetpack