事务详解

外部起事物,内部起事物,内外都无Try Catch

    外部异常总结:内外都无try Catch的时候,外部异常,全部回滚。

    内部异常总结:内外都无try Catch的时候,内部异常,全部回滚。

外部起事物,内部起事物,外部有Try Catch

    外部异常总结:外部有try Catch时候,外部异常,不能回滚(事物错误)

    内部异常总结:外部有try Catch时候,内部异常,全部回滚  

外部起事物,内部起事物,内部有Try Catch

    外部异常总结:内部有try Catch,外部异常,全部回滚

    内部异常总结:内部有try Catch,内部异常,全部不回滚(事物失败);

外部起事物,内部起事物,内外有Try Catch

    外部异常总结:内外都有try Catch,外部异常,事物执行一半(事物失败)

    内部事物总结:内外都有try Catch,内部异常,事物全部不会滚(事物失败)

嵌套事物总结

    

1、内外都无try Catch的时候,外部异常,全部回滚。
2、内外都无try Catch的时候,内部异常,全部回滚。
3、外部有try Catch时候,内部异常,全部回滚
4、内部有try Catch,外部异常,全部回滚
5、友情提示:外层方法中调取其他接口,或者另外开启线程的操作,一定放到最后!!!(因为调取接口不能回滚,一定要最后来处理)
总结:由于上面的异常被捕获导致,很多事务回滚失败。如果一定要将捕获,请捕获后又抛出RuntimeException(默认为异常捕获RuntimeException)。
注:默认事务类型

参考文献:https://blog.csdn.net/yangchangyong0/article/details/51960143

猜你喜欢

转载自www.cnblogs.com/g-sheng/p/9139859.html
今日推荐