我希望我的Dao填充Entity类中的@Ignore列。例如:
实体
testImplementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.1.0")
Dao
@Entity(tableName = "example")
data class Example(
@PrimaryKey
val id: Long,
val value: Int
) {
@Ignore
var nextId: Long = 0L
}
但是,在构建应用程序时,会产生以下警告:
@Dao
interface ExampleDao {
@Query(value = "SELECT *, (id + 1) AS nextId FROM example")
fun getAllExamples(): List<Example>
}
,并且不会填充The query returns some columns [nextId] which are not used by com.example.app.Example
。
是否可以在@Query中包含@Ignore列(如果可以,如何)?如果没有,可以采用哪些策略将表中不存在的列填充到Entity类中。
注意:只要我可以简单地执行以下操作,就可以充分理解该示例:
nextId
但这不是我要问的问题。
答案 0 :(得分:0)
根据@CommonsWare给我的信息,我采用的解决方案是
data class ExampleWithNextId(
@Embedded
val example: Example) {
var nextId: Long = 0L
}
然后像这样在道中使用它
@Dao
interface ExampleDao {
@Query(value = "SELECT *, (id + 1) AS nextId FROM example")
fun getAllExamplesWithNextId(): List<ExampleWithNextId>
}