Комната не обновляет все запросы правильно с сопрограммами - PullRequest
0 голосов
/ 07 октября 2019

У меня есть 120 записей в таблице, и я хочу обновить все записи одну за другой. Каким-то образом комната не может обновить целые записи. из 87 записей не может быть обновлено, хотя я вижу вывод журнала. (Я проверяю таблицу, экспортируя в db browser для sqlite, а также получая данные через код)

PreferencesActivity

private fun updateSample()  {
  for (x in 1..114) {
    preferencesViewModel.updateRecords(x)
  }
}

viewmodel

fun updateRecords(x: Int) = runBlocking {
  launch(Dispatchers.IO){
    database.surahDataDao().update(x, x, x)
    Log.e("AAAA", "database.preferencesDataDao().update($x, $x, $x)")
  }
}

dao

@Query("Update Preferences Set start = :start, end = :end WHERE Id = :number")
fun update(start: Int, end: Int, number: Int)

некоторые выходные данные журнала из регистратора

выполняются в потоке [DefaultDispatcher-worker-1,5, main] -> обновление (6236, 6231, 114) выполняется в потоке [DefaultDispatcher-worker-3, 5, main] -> обновление (6230, 6226, 113) выполняется в потоке [DefaultDispatcher-worker-3,5, main] -> обновление (6225, 6222, 112) выполняется в потоке [DefaultDispatcher-worker-3,5, main] -> обновление (6221, 6217, 111) выполняется в потоке [DefaultDispatcher-worker-6,5, main] -> обновление (6216, 6214, 110) выполняется в потоке [DefaultDispatcher-worker-3,5, main] -> обновление (6213, 6208, 109) выполняется в потоке [DefaultDispatcher-worker-6,5, main] -> обновление (6207, 6205, 108) выполняется в потоке [DefaultDispatcher-worker-4,5, main] -> обновление (6204, 6198, 107) выполняется в потоке [DefaultDispatcher-worker-1,5, main] -> обновление (6197, 6194, 106) выполняется в потоке [DefaultDispatcher-worker-1,5, main] -> обновление(6193, 6189, 105) работает в потоке [DefaultDispatcher-worker-6,5, main] -> update (6188, 6180, 104) работает в потоке [DefaultDispatcher-worker-5,5, main] -> update (6179, 6177,103) работает в потоке [DefaultDispatcher-worker-5,5, main] -> update (6176, 6169, 102) работает в потоке [DefaultDispatcher-worker-2,5, main] -> update (6168, 6158, 101)работает в потоке [DefaultDispatcher-worker-2,5, main] -> update (6157, 6147, 100)

. ,.

...