在Spring中,事务传播行为定义了方法如何参与现有的事务或创建新事务。Spring框架提供了多种事务传播级别,常见的有以下几种:
1. REQUIRED(默认级别):如果当前存在事务,则加入该事务;如果当前没有事务,则创建一个新事务。
2. SUPPORTS:支持当前事务,如果当前没有事务,则以非事务方式执行。
3. MANDATORY:强制使用当前事务,如果当前没有事务,则抛出异常。
4. REQUIRES_NEW:创建一个新事务,如果当前存在事务,则暂停当前事务。
5. NOT_SUPPORTED:以非事务方式执行,如果当前存在事务,则挂起该事务。
6. NEVER:以非事务方式执行,如果当前存在事务,则抛出异常。
7. NESTED:如果当前存在事务,则在嵌套事务中执行;如果当前没有事务,则创建一个新事务。如果外层事务回滚,则嵌套事务也会回滚,但是嵌套事务可以独立提交。