关于Spring事物管理中try catch的疑问
在service(受spring事物控制)中的某个方法中有如下代码,请高手帮我分析下,执行情况
try{
insert(user1);
delete(user3);//抛异常
}catch(Exception){
insert(user2);
throw new
RuntimeException("1");
}
插入的user1和user3那个能成功,还是都失败?
------解决方案--------------------报错就回滚了
------解决方案--------------------throw了应该是都回滚了
------解决方案--------------------事物的特性
原子性:
一整个交易中的所有操作,要么全部完成,要么全部不完成,不可能停滞在中间某个环节。
交易在执行过程中发生错误,会被回复(Rollback)到交易开始前的状态,就像这个交易从来没有执行过一样。
insert(user1);
delete(user3);//抛异常
那么insert delete 都会失败