Как определить, успешно ли выполнен SQL-запрос UPDATE с помощью Room? - PullRequest
1 голос
/ 01 июня 2019

Я использую Room и у меня есть метод для обновления строки в базе данных:

@Query("UPDATE packs SET is_opened = 1 WHERE pack_id IN (:packId)")
fun unlockPack(packId: Int)

Я звоню из репозитория:

override fun unlockOnePackById(packID: Int) {
        db.packDaoAccess().unlockPack(packID)
    }

, который вызывается от докладчика, а затем результат переходит к Activity. Когда я использую GET или другой SQL-запрос, у меня есть Observable результат:

@Query("SELECT * FROM packs")
fun allFullPacks(): Observable<List<AnimalPackFull>>

Но, как я знаю, UPDATE ничего не возвращает. Как я могу определить, что мой UPDATE запрос выполнен правильно? Мне нужно, чтобы он показывал всплывающее окно пользователю.

1 Ответ

2 голосов
/ 02 июня 2019

Если вы настроите свой запрос так, чтобы он возвращал некоторое значение типа Int, например,

@Query("UPDATE packs SET is_opened = 1 WHERE pack_id IN (:packId)")
fun unlockPack(packId: Int) : Int

Он должен вернуть вам количество строк, затронутых вашим запросом на обновление.То же самое касается запросов на удаление

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...