Android Room防止回滚

时间:2018-10-19 00:48:20

标签: android sqlite android-room

即使捕获了SQLiteConstraintException,我的交易也会回滚。有什么方法可以防止发生异常时回滚?

说我进行的删除违反了外键约束。

@Transaction
fun deleteProduct(p : Product) {
    deleteSomeOtherEntityByProductId(p.id)
    try {
      deleteProductViolatingContstraint(p)
    } catch (e: SQLiteConstraintException) {
      // there are SomeOtherEntity's referencing this product
      e.printStackTrace()
    }
}

在这种情况下,交易完成后,即使捕获到异常,SomeOtherEntity也将恢复。

0 个答案:

没有答案