事务传播机制
- REQUIRED(默认传播行为):如果当前存在事务,则加入该事务。如果不存在事务,则新建事务。
- SUPPORTS:如果当前存在事务,则加入该事务。如果没有事务,则以非事务方式运行。
- MANDATORY:如果没有事务,则抛出异常
- REQIRED_NEW:每次执行都创建一个新事务,并将当前上下文中的事务挂起。执行完当前线程后,上线文中的事务回复。这意味着子事务的执行结果不影响父事务的执行和回滚。
- NOT_SUPPORTED:如果存在事务,则挂起,以非事务执行。执行完当前逻辑后,恢复上下文的事务。
- NEVER:总是非事务的执行,不加入任何事务
- NESTED:如果当前有事务,则开启一个嵌套事务。如果没有事务,则表现为REQUIRED。嵌套事务有自己的回滚点,可以独立回滚,如果外部事务回滚,嵌套事务也会回滚。