概念
rollbackFor :哪些异常需要回滚
noRollbackFor :哪些异常可以不回滚
异常分类:

- 运行时异常(RuntimeException):默认都回滚。 int a=1/0
- 编译时异常(RuntimeException以外的异常):默认不回滚。 throw IOException
注:
在@Transactional注解中如果不配置rollbackFor属性,那么事务只会在遇到RuntimeException的时候才会回滚,加上rollbackFor=Exception.class,可以让事务在遇到非运行时异常时也回滚
测试代码(不涉及传播行为)
1. noRollbackFor :让运行时异常抛出时不回滚
@Transactional(noRollbackFor = {
ArithmeticException.class})
public void changeNum(){
testAMapper.addNumA();
int a = 1/0; //运行时异常,正常会导致回滚;noRollback

本文详细介绍了Spring事务管理中`rollbackFor`和`noRollbackFor`属性的使用,解释了如何配置这些属性来控制在遇到特定异常时是否回滚事务。内容涵盖运行时异常和编译时异常的默认回滚行为,并通过测试代码展示了不同配置下事务的回滚逻辑。
最低0.47元/天 解锁文章
1339

被折叠的 条评论
为什么被折叠?



