事务回滚的propagation配置
时间: 2023-11-09 17:05:40 浏览: 56
Spring异常捕获且回滚事务解决方案
5星 · 资源好评率100%
事务回滚的propagation配置是指在一个事务中,如果其中一个方法抛出了异常并导致事务回滚,那么这个异常应该如何传播到包含该方法的上一层方法。在Spring框架中,事务回滚的propagation配置有以下几种:
1. REQUIRED:如果当前有事务正在运行,那么该方法就在该事务中执行。否则,就启动一个新的事务,并在其中执行该方法。如果方法抛出异常,那么整个事务都会回滚。
2. REQUIRES_NEW:无论当前是否有事务正在运行,该方法都会启动一个新的事务,并在其中执行。如果方法抛出异常,那么只有当前的事务会回滚,而不会影响其他事务。
3. NESTED:如果当前有事务正在运行,那么该方法就在该事务的嵌套事务中执行。否则,就启动一个新的事务,并在其中执行。如果方法抛出异常,那么只有该嵌套事务会回滚,而不会影响其他事务。
4. SUPPORTS:如果当前有事务正在运行,那么该方法就在该事务中执行。否则,就不启动事务,直接执行该方法。
5. NOT_SUPPORTED:如果当前有事务正在运行,那么该方法就挂起该事务,并在没有事务的情况下执行该方法。执行完成后,再恢复原来的事务。
6. NEVER:如果当前有事务正在运行,那么该方法就抛出异常,否则就直接执行该方法。
7. MANDATORY:如果当前没有事务正在运行,那么该方法就抛出异常,否则就在该事务中执行。
通过合理的propagation配置,可以控制事务的传播行为,从而实现对业务逻辑的可靠控制。
阅读全文