事务的传播行为(Transaction Propagation Behavior)指的是在一个事务性方法被另一个事务性方法调用时,这两个事务如何相互作用。Spring定义了多种传播行为来处理这种情况,主要包括:
1. REQUIRED(默认):如果当前存在事务,则加入该事务;如果当前没有事务,则创建一个新的事务。
2. SUPPORTS:如果当前存在事务,则加入该事务;如果当前没有事务,则以非事务方式执行。
3. MANDATORY:如果当前存在事务,则加入该事务;如果当前没有事务,则抛出异常。
4. REQUIRES_NEW:总是创建一个新的事务,如果当前存在事务,则挂起当前事务。
5. NOT_SUPPORTED:总是以非事务方式执行,如果当前存在事务,则挂起当前事务。
6. NEVER:总是以非事务方式执行,如果当前存在事务,则抛出异常。
7. NESTED:如果当前存在事务,则在嵌套事务内执行。如果当前没有事务,则表现同REQUIRED。