spring事务回滚规则

介绍

spring事务回滚的规则

  • 默认配置下,当抛出的异常为 RuntimeException 异常、及其子类的异常,就会回滚事务

  • 抛出checked异常(如:IOException)则 不会事务回滚

可以通过配置,指定抛出某异常时回滚事务,也可以指定抛出某些异常时 不回滚事务。

一般修改为:抛出java.lang.Exception异常就回滚事务

rollbackFor

可配置多个 异常类,抛出这些异常时会 回滚

rollbackForClassname

可配置多个 异常类的名字,抛出这些异常时会 回滚

noRollbackFor

可配置多个 异常类,抛出这些异常时 不会回滚

noRollbackForClassname

可配置多个 异常类的名字,抛出这些异常时 不会回滚

配置

注解

只要抛出异常就会回滚

@Transactional(rollbackFor = Exception.class)

配置文件

<tx:advice id="txAdvice" transaction-manager="txManager">
    <tx:attributes>
        <tx:method name="insert*" propagation="REQUIRED" read-only="false" rollback-for="java.lang.Exception" ></tx:method>
    </tx:attributes>
</tx:advice>

参考:
https://www.cnblogs.com/zjj1996/p/9139567.html


原文出处:/show_1EF5sjIAqWPb.html