Spring事务回滚配置

1、Spring的默认事务机制,当出现unchecked异常时候回滚,checked异常的时候不会回滚;
unchecked异常包括error和runtime异常;checked异常包括IOException异常,需要try catch或向上抛出异常。程序在抛出runtime异常的时候才会进行回滚,其他异常不会回滚,当然可以通过配置让所有异常都回滚:
@Transaction(rollbackFor = {Exception.class})

2、当有try catch后捕获了异常,事务不会回滚,如果不得不在service层写try catch后throw new RuntimeException让事务回滚。

3、基于注解的事务:
Transactional的异常控制,默认是Check Exception 不回滚,unCheck Exception回滚
如果配置了rollbackFor 和 noRollbackFor 且两个都是用同样的异常,那么遇到该异常,还是回滚
rollbackFor 和noRollbackFor 配置也许不会含盖所有异常,对于遗漏的按照Check Exception 不回滚,unCheck Exception回滚

关于回滚的配置,也可以参考 慕课网-Spring事务管理-6-2声明式事务管理。

转自:https://blog.csdn.net/qq_34406670/article/details/78984247

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章