日期:2014-05-17  浏览次数:20790 次

关于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 都会失败