我正在使用Room,并且有一种方法可以将行更新为Database:

@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)
    }

从presener调用,然后结果转到Activity。当我使用GET或其他SQL查询时,我得到Observable结果:
@Query("SELECT * FROM packs")
fun allFullPacks(): Observable<List<AnimalPackFull>>

但据我所知,UPDATE不返回任何内容。我如何检测我的UPDATE查询正确完成?我需要它来显示弹出给用户。

最佳答案

如果您调整查询以使其具有Int的某些返回值,例如

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

它应返回受更新查询影响的行数。
删除查询也是如此

10-08 11:45