Итак, существует три типа: OnConflictStrategry доступно + 2, которое уже устарело.
По умолчанию ABORT
- ABORT (По умолчанию - отменить транзакцию и ничего не меняет, откат к предыдущим данным для записей, которые были обновлены)
- FAIL (устарело)
- IGNORE (игнорирует тот, у которого есть конфликт, и продолжает транзакцию)
- REPLACE (удалить предыдущую транзакцию и добавить новую запись)
- ROLLBACK (устарело)
SQLite документация
И в Room чего-то не хватает, что может вас беспокоить, и это не метод upsert . upsert означает вставку ИЛИ обновление. REPLACE не имеет того же эффекта, что и upsert, поскольку он удаляет запись и добавляет новую (удалить И вставить). Если вы ищете подтверждение, эта статья покажет вам, как это сделать.