以前一直是采用xml的方式控制事务,后来用@Transcational注解以后,具体逻辑不太清楚,所在在本地测试了一下,得出以下
结论,如有错误还请留言支出
1,当使用@Transcational,则开始控制事务,默认回滚条件为:发生RuntimeException,则自动回滚。
2,当Transactional设置rollbackFor=Exception.class,则发生异常就会回滚(如果代码块被try catch,则rollbackFor不起作用!)
3,当代码块被try catch时,除非catch抛出RuntimeException,否则事务不会回滚(rollbackFor不起作用)
4,当在junit测试时,在方法里面的事务默认全部回滚,当设置defaultRollback = false,则全部提交
楼主临时测试一下,如有不详细或者不准备的情况,还望指出!!!