Комната возвращает другой объект в DAO - PullRequest
0 голосов
/ 09 июля 2020

У меня есть DAO

@Dao
interface UserDao {

     @Query("SELECT * FROM user_entity")
     fun getAll(): List<UserEntity>

     @Query("SELECT COUNT(id) AS count FROM user_entity")
     fun getCombined(): UserCombinedEntity
}

Классы:

@Entity
data class UserEntity(
    @ColumnInfo
    val id: Long,
    @ColumnInfo
    val name: String
)

data class UserCombinedEntity(
    val count: Int
)

Но это дает мне сообщение об ошибке:

Произошла ошибка при выполнении org .jetbrains. kotlin .gradle.internal.KaptExecution

Может ли ROOM действительно поддерживать это?

Это минимальный пример проблемы. Конечно, UserCombinedEntity имеет больше полей.

Ответы [ 2 ]

0 голосов
/ 10 июля 2020

Это немного странно, потому что ошибка, выдаваемая Kotlin, не очень полезна. Решение состоит в том, чтобы убедиться, что count - это var.

data class UserCombinedEntity(
    var count: Int
)
0 голосов
/ 09 июля 2020

Комбинированная сущность для int не нужна, проще вернуть int.

@Query("SELECT COUNT(id) FROM word  ")

int getAllCount();
...