Spring 的事务传播机制有7种
- 1:propagation_required :Spring默认传播级别,如果上下文中存在事务则加入当前事务,如果不存在事务则新建事务执行。
- 2: propagation_supports:如果上下文中存在事务则加入当前事务,如果没有事务则以非事务方式执行。
- 3: propagation_mandatory: 该传播级别要求上下文中必须存在事务,否则抛出异常。
- 4:propagation_required_new :该传播级别每次执行都会创建新事务,并同时将上下文中的事务进行挂起,执行完当前线程后再恢复上下文事务。(子事务的执行结果不影响父事务的执行和回滚).
- 5:propagation_not_supported: 当上下文有事务则挂起当前事务,执行完当前逻辑后再恢复上下文事务。(降低事务大小,将非核心的执行逻辑包裹执行)。
- 6: propagation_never: 该传播级别要求上下文中不能存在事务,否则抛出异常。
- 7:propagation_nested:嵌套事务,如果上下文中存在事务则嵌套执行,如果不存在则新建事务(save point概念)