Запрос к объекту области не выдается при обновлении параметра встроенного объекта областиAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Запрос к объекту области не выдается при обновлении параметра встроенного объекта области

Сообщение Anonymous »

Здравствуйте, я использую Kotlin Realm в качестве базы данных для своего многоплатформенного проекта Kotlin.
Мои настройки
У меня есть следующие две структуры: объекты:

Код: Выделить всё

class MyRealmObject: RealmObject {
@PrimaryKey
var id: String = ""
var myEmbeddedRealmObjects: RealmList = realmListOf()
}

Код: Выделить всё

class MyEmbeddedRealmObject: EmbeddedRealmObject {
var exampleEmbeddedParam: String = ""
}
Кроме того, в моей базе данных есть запрос, который выглядит следующим образом:

Код: Выделить всё

fun observeMyRealmObject(id: String): Flow = realm
.query("id = $0", id)
.first()
.asFlow()
.mapLatest { myRealmObject: MyRealmObject -> myRealmObject.obj }
Проблема
Когда я теперь обновляю параметр exampleEmbeddedParam любого из MyEmbeddedRealmObject, нового состояния нет выдается обновление для моего Flow.
Я узнал, что существует ограничение по умолчанию для вложенной иерархии, равное 4, для функции .asFlow(), которое я могу преодолеть с помощью keyPaths для функции .asFlow().
Однако, с моей точки зрения, myEmbeddedRealmObjects находится на уровне иерархии 1, поэтому запрос должен получать уведомление при обновлении любого из exampleEmbeddedParam MyEmbeddedRealmObject (уровень 2).
Однако это не тот случай, и только если я добавлю явный параметр keyPaths, например .asFlow(listOf("myEmbeddedRealmObjects.*") или .asFlow(listOf("*.*"), мой запрос выдает обновление.
Вопрос
По умолчанию параметры RealmList или любые другие изменения EmbeddedRealmObject второго уровня игнорируются, если я явно не использую параметры keyPaths файла . asFlow()? И как я могу решить эту проблему, помимо использования явных параметров keyPath для всех запросов, которым необходимо получать обновления из параметров встроенного объекта области?
Любая помощь приветствуется! Заранее спасибо

Подробнее здесь: https://stackoverflow.com/questions/788 ... ter-is-upd
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»