一、Spring 事务传播行为一共有7种类型,主要分为3类:
1)支持当前事物、
2)不支持当前事务、
3)奇葩类型。
二、支持当前事物:
1)支持当前事物 —— PROPAGATION_REQUIRED:如果当前没有事物,就新建一个事务;如果有事物,就直接使用当前前事物、
2)支持当前事物 ——PROPAGATION_SUPPORTS :如果当前没有事务,就以非事务方式执行、
3)支持当前事物 ——PROPAGATION_MANDATORY:如果当前没有事务,就抛出异常。
三、不支持当前事物:
1)不支持当前事物 —— PROPAGATION_REQUIRES_NEW:如果当前有事物,就将当前前事物挂起,新建一个事物、
2)不支持当前事物 —— PROPAGATION_NOT_SUPPORTED:如果有事务,就将当前前事物挂起,并以非事务方式执行、
3)不支持当前事物 —— PROPAGATION_NEVER:如果有事物,就抛异常,即必须以非事务方式执行。
四、奇葩类型:
其实这是支持当前事物的特例 —— PROPAGATION_NESTED: 如果有事物,也新建一个事务,以事务嵌套事物的方式执行。