Android 房间事务回滚或取消
在Android 房间事务回滚或取消,android,android-room,android-jetpack,Android,Android Room,Android Jetpack,在@Transaction中,文件室是否使用回滚作为默认值 它是否只取消@Transaction中的下一个查询而不回滚 它在出错时实际做了什么?我假设您指的是用@Transaction注释的实现方法,例如: @Transaction public void transferMoney(String accountA, String accountB, int amount) { updateMoney(accountA, -amount); updateMoney(accountB, +
@Transaction
中,文件室是否使用回滚作为默认值
它是否只取消@Transaction
中的下一个查询而不回滚
它在出错时实际做了什么?我假设您指的是用
@Transaction
注释的实现方法,例如:
@Transaction
public void transferMoney(String accountA, String accountB, int amount) {
updateMoney(accountA, -amount);
updateMoney(accountB, +amount);
}
房间是否在@Transaction中使用回滚作为默认值
是的,如果在用@Transaction
注释的方法中抛出异常,则Room将执行回滚事务
它是否只取消@Transaction内的下一个查询而不回滚
它取消方法中的每个后续查询,并回滚方法中任何其他查询所做的任何更改,直到出现故障为止
它在出错时实际做了什么
它回滚事务
如果您所引用的
@Query
带注释的方法也带有@Transaction
注释,那么这些都是只读查询,因此实际上没有什么可回滚的,但是,当生成的数据很大或返回的数据具有@关系时,数据是有保证的。见: