Spring事务的传播行为

Spring中的传播行为

Require:支持当前事务,如果没有事务,就建一个新的;

Supports:支持当前事务,如果当前没有事务,就以非事务方式执行;

Mandatory:支持当前事务,如果当前没有事务,就抛出异常;

RequiresNew:新建事务,如果当前存在事务,就把当前事务挂起;

NotSupported:以非事务方式执行操作,如果当前存在事务,就把事务挂起;

Never:以非事务方式执行,如果当前存在事务,则抛出异常。

Nested:新建事务:如果当前存在事务,把当前事务挂起。

与RequireNew的区别是:RequireNew另起一个事务,将会与它的父事务相互独立。而Nested的事务和它的父事务是相依的,它的提交要等和它的父事务一块提交的,也就是父事务如果回滚,它也要回滚的。

原文地址:https://www.cnblogs.com/melody210218/p/7122403.html