Комната Android Позволяет Dao @Query заполнять столбцы @Ignore - PullRequest
0 голосов
/ 12 января 2019

Я хочу, чтобы мой Дао заполнил столбцы @Ignore в моем классе Entity. Например:

Entity

@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 и не заполняется nextId.

Можно ли включить @Ignore столбцы в @Query (если да, то как)? Если нет, то какие стратегии можно использовать для заполнения столбцов, которых нет в моих таблицах, в мой класс Entity.

Примечание: Я полностью осведомлен с примером при условии, что я могу просто сделать что-то вроде:

@Ignore
val nextId: Long = id + 1

Но не в этом вопрос, который я задаю.

1 Ответ

0 голосов
/ 12 января 2019

Основываясь на информации, предоставленной мне @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>
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...