【发布时间】:2025-12-12 00:15:01
【问题描述】:
我想知道在 Android Room 查询中使用表名时如何避免硬编码。我在Kotlin 开发,但老实说,在这个问题上,Java 或 Kotlin 都没有关系。
让我们看看那些简单的类:
DAO 接口:
@Dao
interface UserDAO {
@Query("SELECT * FROM USER")
fun getAll(): List<User>
}
实体类:
@Entity(tableName = "USER")
class User {
}
您可以在 UserDAO 的 @Query 中看到表名“USER”是硬编码的。如何避免这种情况?如何引用@Entity参数tableName?
我想把所有的名字都集中在一个地方。
【问题讨论】:
-
您是否尝试过使用 User::class.simpleName?
-
是的。结果中出现错误:
Type mismatch. Required: String Found: String?
标签: android kotlin android-room