Номер базы данных получить набор типа - PullRequest
0 голосов
/ 21 апреля 2020

Мне нужно получить set строк из RoomDatabase

Entity:

@Entity
data class Data(
@PrimaryKey val id: Int,
val type: String,
val photo: String
)

Мне нужно получить set типов. Я попробовал следующий метод:

...
@Query("SELECT type FROM data")
fun getAllTypes(): LiveData<Set<String>>
...

Теперь у меня есть следующая ошибка:

C:\...\storage\DataDao.java:24: error: Not sure how to convert a Cursor to this method's return type (androidx.lifecycle.LiveData<java.util.Set<java.lang.String>>).
    public abstract androidx.lifecycle.LiveData<java.util.Set<java.lang.String>> getAllTypes();
[WARN] Incremental annotation processing requested, but support is disabled because the following processors are not incremental: androidx.room.RoomProcessor (DYNAMIC).

> Task :app:kaptDebugKotlin FAILED

Ответы [ 2 ]

1 голос
/ 22 апреля 2020

Вы не можете получить Set, извините. В соответствии с документацией для запросов SELECT вы можете использовать только List или Array.

https://developer.android.com/reference/androidx/room/Query

Если вам нужны уникальные элементы, вы можете использовать SQL. DISTINCT.

0 голосов
/ 21 апреля 2020

Может быть это:

@Query("SELECT type FROM data")

Должно быть так:

@Query("SELECT type FROM Data")
...