Transactional spring 事务传播
时间: 2024-04-09 14:25:20 浏览: 65
Transactional spring事务传播是指在Spring框架中,对于多个事务方法的调用,如何处理事务的传播行为。事务传播定义了一个事务方法如何与其他事务方法进行交互和协调的规则。
Spring框架提供了多种事务传播行为,包括:
1. REQUIRED(默认):如果当前存在事务,则加入该事务;如果当前没有事务,则创建一个新的事务。这是最常用的传播行为,适用于大多数情况。
2. SUPPORTS:如果当前存在事务,则加入该事务;如果当前没有事务,则以非事务方式执行。适用于不需要强制要求事务的场景。
3. MANDATORY:如果当前存在事务,则加入该事务;如果当前没有事务,则抛出异常。适用于必须在已有事务中执行的场景。
4. REQUIRES_NEW:创建一个新的事务,并挂起当前事务(如果存在)。适用于需要独立的事务执行的场景。
5. NOT_SUPPORTED:以非事务方式执行,并挂起当前事务(如果存在)。适用于不需要事务支持的场景。
6. NEVER:以非事务方式执行,如果当前存在事务,则抛出异常。适用于不允许在事务中执行的场景。
7. NESTED:如果当前存在事务,则在嵌套事务中执行;如果当前没有事务,则创建一个新的事务。嵌套事务是外部事务的一部分,可以独立提交或回滚。适用于需要嵌套事务支持的场景。
相关问题
@Transactional的事务传播方式
@Transactional注解可以用于方法级别或类级别,它们定义了事务的边界。在方法执行期间,如果发生异常,事务将被回滚,否则它将被提交。
事务的传播方式定义了在多个事务性方法之间如何管理事务。Spring支持以下传播方式:
1. REQUIRED(默认值):如果当前没有事务,则创建一个新事务,如果已经有一个事务正在运行,则加入该事务。
2. SUPPORTS:如果当前存在事务,则加入该事务,否则以非事务性的方式继续执行。
3. MANDATORY:如果当前存在事务,则加入该事务,否则抛出异常。
4. REQUIRES_NEW:创建一个新事务,并挂起当前事务(如果存在)。
5. NOT_SUPPORTED:以非事务性的方式执行,并挂起当前事务(如果存在)。
6. NEVER:以非事务性的方式执行,如果当前存在事务,则抛出异常。
7. NESTED:如果当前存在事务,则在嵌套事务中执行,否则创建一个新事务。如果外部事务提交,则提交内部事务,否则回滚内部事务。
Transactional事务传播
Transactional事务传播是Spring框架提供的注解,用于管理方法的事务行为。通过在方法上加上Transactional注解,可以指定该方法是否需要参与到当前的事务中,以及如何处理嵌套事务等情况。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [Transactional注解中事务的传播行为](https://blog.csdn.net/adminBfl/article/details/128268337)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *2* *3* [Spring @Transactional事务传播机制详解](https://blog.csdn.net/qq_40922616/article/details/129919921)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文