Realm получить определенные свойства соответствующего запроса, чем все свойства? - PullRequest
4 голосов
/ 11 марта 2020

У меня есть огромный класс объектов со свойством description типа string длиной около 20000 символов.

Объекты, возвращаемые из запроса, будут выглядеть примерно так:

obj = {
    id: a9cd46cf-8e9a-4a52-a762-a6ada55d4dd3 UUID
    title: 50 char String
    description: 20000+ char String  
    section: 10 char String
}

При запросе объекта obj с областью выдается очень большой список памяти, который не подходит для производительности. Таким образом, запрос выглядит так:

realm.where<TextBlob>().equalTo("section", "A_SECTION").findAll()

Можно ли запросить RealmObject, чтобы вернуть только id и title данной структуры данных?

Требуемый структура объекта:

obj = {
    id: a9cd46cf-8e9a-4a52-a762-a6ada55d4dd3 UUID
    title: 50 char String
}

В некоторых ORM существует фильтр values; существует ли нечто подобное для Царства?

1 Ответ

2 голосов
/ 18 марта 2020

Используйте map для сопоставления атрибутов с коллекцией карт. Например, сопоставление результатов с ArrayList из HashMaps.

val results: ArrayList<HashMap<String, String>> = ArrayList()

realm.where<TextBlob>().equalTo("section", "A_SECTION").findAll().map {
    results.add(hashMapOf("id" to it.id, "title" to it.title ))
}
...