Spring事务的传播行为
Spring中的传播行为
Require:支持当前事务,如果没有事务,就建一个新的;
Supports:支持当前事务,如果当前没有事务,就以非事务方式执行;
Mandatory:支持当前事务,如果当前没有事务,就抛出异常;
RequiresNew:新建事务,如果当前存在事务,就把当前事务挂起;
NotSupported:以非事务方式执行操作,如果当前存在事务,就把事务挂起;
Never:以非事务方式执行,如果当前存在事务,则抛出异常。
Nested:新建事务:如果当前存在事务,把当前事务挂起。
与RequireNew的区别是:RequireNew另起一个事务,将会与它的父事务相互独立。而Nested的事务和它的父事务是相依的,它的提交要等和它的父事务一块提交的,也就是父事务如果回滚,它也要回滚的。