spring注解@Transactional会回滚哪些异常
一、测试案例
1、@Transactional ,抛出Throwable 异常 ,事务不回滚
2、@Transactional(rollbackFor = Throwable.class) ,抛出Throwable 异常,事务回滚
3、@Transactional(rollbackFor = Throwable.class) ,IOException 异常 ,事务回滚
4、@Transactional(rollbackFor = Throwable.class),抛出Error 异常 ,事务回滚
5、@Transactional ,抛出Error 异常 ,事务回滚
7、@Transactional ,抛出RuntimeException 异常,事务回滚
8、@Transactional ,抛出Exception 异常,事务不回滚
9、@Transactional ,抛出IOException 异常,事务不回滚
二、异常类图
三、结论
1、@Transactional 不指定rollbackFor,默认回滚RuntimeException和Error异常,以及子类的异常。
2、@Transactional(rollbackFor = Throwable.class) 可以回滚所有Throwable异常和子类异常。