Удалить строку из комнаты дБ - PullRequest
1 голос
/ 23 января 2020

1.API-вызов возвращает 5 элементов
2. вставляет его в комнату db
3. Снова вызывает тот же API, но на этот раз возвращает только 4 элементов
4.Один элемент должен быть удален из комнаты. Db

Как это можно сделать?

@Insert(onConflict = OnConflictStrategy.REPLACE)

не работает

1 Ответ

0 голосов
/ 23 января 2020

Приведенный выше метод интерфейса вставки не удалит вашу лишнюю строку. Что он делает, так это то, что каждый раз, когда собирается вставить сущность, и эта сущность уже существует (имеется в виду, что существует один и тот же PK), она заменяет старую сущность новой. Что вам нужно сделать, это

result = Dao()."Select * from _your_table"

result.forEach {
   if (it.primary_key_id.existsIn(response_from_server_list)) {
      Dao.insert(it)      // Will replace the already existed
   } else {
      Dao.delete(it)      // Will delete the rows that does not exist in server respone
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...