spring事务的传播级别
时间: 2024-06-07 09:12:12 浏览: 51
Spring事务的传播级别是用于定义事务方法在被调用时如何参与到已经存在的事务中或者如何创建一个新的事务。Spring框架提供了多种事务传播级别,包括:
1. REQUIRED(默认):如果当前存在事务,则加入该事务;如果当前没有事务,则创建一个新的事务。
2. SUPPORTS:如果当前存在事务,则加入该事务;如果当前没有事务,则以非事务方式执行。
3. MANDATORY:如果当前存在事务,则加入该事务;如果当前没有事务,则抛出异常。
4. REQUIRES_NEW:创建一个新的事务,并且暂停当前正在执行的事务(如果有的话)。
5. NOT_SUPPORTED:以非事务方式执行,并且暂停当前正在执行的事务(如果有的话)。
6. NEVER:以非事务方式执行,如果当前存在事务,则抛出异常。
7. NESTED:如果当前存在事务,则在嵌套事务内执行;如果当前没有事务,则创建一个新的事务。
这些传播级别可以通过在@Transactional注解中设置propagation属性来指定。例如,@Transactional(propagation = Propagation.REQUIRED)表示使用REQUIRED传播级别。根据具体的业务需求,选择适当的传播级别可以确保事务管理的一致性和可靠性。
相关问题
spring事务传播级别
Spring事务传播级别是用来定义在一个事务方法被另一个事务方法调用时,如何处理事务的传播行为。Spring框架提供了七种不同的事务传播级别,分别是:
1. REQUIRED(默认):如果当前存在事务,则加入该事务;如果当前没有事务,则创建一个新的事务。
2. SUPPORTS:如果当前存在事务,则加入该事务;如果当前没有事务,则以非事务的方式执行。
3. MANDATORY:如果当前存在事务,则加入该事务;如果当前没有事务,则抛出异常。
4. REQUIRES_NEW:创建一个新的事务,并挂起当前事务(如果存在)。
5. NOT_SUPPORTED:以非事务的方式执行操作,如果当前存在事务,则挂起该事务。
6. NEVER:以非事务的方式执行操作,如果当前存在事务,则抛出异常。
7. NESTED:如果当前存在事务,则在嵌套事务中执行;如果当前没有事务,则创建一个新的事务。
Spring 事务传播级别
在 Spring 中,事务传播级别是通过 `Propagation` 枚举类型来表示的,常用的级别有以下几种:
1. `Propagation.REQUIRED`:如果当前没有事务,则新建一个事务;如果已经存在一个事务中,加入这个事务。这是默认的事务传播级别。
2. `Propagation.SUPPORTS`:如果当前存在事务,则加入该事务;如果当前没有事务,则以非事务的方式继续执行。
3. `Propagation.MANDATORY`:如果当前存在事务,则加入该事务;如果当前没有事务,则抛出异常。
4. `Propagation.REQUIRES_NEW`:新建一个全新的事务,如果当前存在事务,则挂起当前事务。
5. `Propagation.NOT_SUPPORTED`:以非事务方式执行操作,如果当前存在事务,则挂起当前事务。
6. `Propagation.NEVER`:以非事务方式执行操作,如果当前存在事务,则抛出异常。
7. `Propagation.NESTED`:如果当前存在事务,则在嵌套事务内执行;如果当前没有事务,则新建一个事务。嵌套事务是基于 Savepoint 实现的,在外层事务回滚时,会回滚到指定的 Savepoint 点,而不是直接回滚整个事务。该级别需要数据库支持 Savepoint。
通过设置不同的事务传播级别,可以控制事务的行为和影响范围,从而实现更加灵活的事务管理。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)