如何使用Room检测UPDATE sql查询是否成功?

时间:2019-06-01 12:14:12

标签: android kotlin android-room

我正在使用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查询是否正确?我需要它来向用户显示弹出窗口。

1 个答案:

答案 0 :(得分:2)

如果您对查询进行调整,使其具有Int的某些返回值,则像这样

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

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