LINUX.ORG.RU

Правильная цепочка запросов в базу для Android

 , ,


0

1

сабж. Пытаюсь понять как правильно сделать цепочку запросов в базу (все в один запрос не предлагать, они и так здоровые). Собственно сейчас на ум приходят два варианта. Либо через LiveData и Transformations типа

Transformations.switchMap(data1) { list1 ->
  Transformation.switchMap(data2) { list2 ->...

и так еще 4 раза для нескольких параметров, либо сразу отдать MutableLiveData наружу и запустить корутину, пост-фактум закинув в нее результат.

Изменяемых полей, которые нужно мониторить прям в этой activity, штуки 2-3, это здоровый экран с результатом расчета и на нем менять ничего не выйдет.

Подскажите кто знает, чую корутина более корректна в этом случае

★★★★★

Последнее исправление: upcFrost (всего исправлений: 1)

Если не хочешь делать в один запрос, то не забывай делать транзакцию. Я использую rxjava для подобного, получается что-то вроде:

fun commit(): Completable =
    repository.transactionManager.completable {
        repository.doAction1(args, transaction)
            .andThen(repository.doAction2(args, transaction))
            .andThen(repository.doAction3(args, transaction))
            ...
            .andThen(repository.doActionN(args, transaction))
    }

Сейчас корутины становятся популярным, посмотри в их сторону, они вполне способны заменить rxjava в большинстве случаев. С корутинами в kotline не работал, но в дарте очень приятно и удобно этим пользоваться, удобнее чем rxjava, хотя изредка и он необходим, через rxjava удобно делать debounce.

Int64 ★★★
()
Последнее исправление: Int64 (всего исправлений: 1)
Ответ на: комментарий от Int64

Если не хочешь делать в один запрос

там и так пара запросов на весь экран ноута. Много расчетов, если все в базу запихать - поддерживать это чудо без пары бутылок уже не выйдет.

upcFrost ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.