事务propagation
时间: 2023-11-08 07:04:31 浏览: 36
事务propagation是指在一个事务中,多个数据库操作之间的传递行为。具体来说,当一个事务中包含多个数据库操作时,这些操作之间可能会相互影响,而事务propagation就是用来控制这种影响的。例如,当一个数据库操作失败时,事务propagation可以控制是否回滚整个事务,或者只回滚部分操作。希望这个回答能够帮助你理解事务propagation的概念。
相关问题
事务回滚的propagation配置
事务回滚的propagation配置是指在一个事务中,如果其中一个方法抛出了异常并导致事务回滚,那么这个异常应该如何传播到包含该方法的上一层方法。在Spring框架中,事务回滚的propagation配置有以下几种:
1. REQUIRED:如果当前有事务正在运行,那么该方法就在该事务中执行。否则,就启动一个新的事务,并在其中执行该方法。如果方法抛出异常,那么整个事务都会回滚。
2. REQUIRES_NEW:无论当前是否有事务正在运行,该方法都会启动一个新的事务,并在其中执行。如果方法抛出异常,那么只有当前的事务会回滚,而不会影响其他事务。
3. NESTED:如果当前有事务正在运行,那么该方法就在该事务的嵌套事务中执行。否则,就启动一个新的事务,并在其中执行。如果方法抛出异常,那么只有该嵌套事务会回滚,而不会影响其他事务。
4. SUPPORTS:如果当前有事务正在运行,那么该方法就在该事务中执行。否则,就不启动事务,直接执行该方法。
5. NOT_SUPPORTED:如果当前有事务正在运行,那么该方法就挂起该事务,并在没有事务的情况下执行该方法。执行完成后,再恢复原来的事务。
6. NEVER:如果当前有事务正在运行,那么该方法就抛出异常,否则就直接执行该方法。
7. MANDATORY:如果当前没有事务正在运行,那么该方法就抛出异常,否则就在该事务中执行。
通过合理的propagation配置,可以控制事务的传播行为,从而实现对业务逻辑的可靠控制。
Propagation
Propagation是Spring框架中七种事务传播属性之一。事务传播属性决定了一个方法在运行时如何参与到现有的事务中。在Spring中,事务传播属性可以用来控制方法的事务行为。
一种常见的事务传播属性是REQUIRED。这意味着如果当前存在事务,方法将被包含在该事务中,如果当前没有事务,则会创建一个新的事务。REQUIRED是默认的事务传播属性。
另一种常见的事务传播属性是SUPPORTS。这意味着如果当前存在事务,则方法将参与该事务,如果当前没有事务,则将以非事务方式执行。
还有其他几种事务传播属性,如MANDATORY、REQUIRES_NEW、NOT_SUPPORTED、NEVER和NESTED。它们分别表示在不同的事务环境下方法的行为。
对于事务的覆盖和包含关系,覆盖指的是层层嵌套的方法共用同一个事务,事务的属性由最外围方法的属性值决定。这些方法要么同时执行成功要么同时回滚。而包含指的是大范围的事务可以包含小范围的事务,它们在逻辑上是互相独立的,每个内部事务都能独立设置一些属性,而不影响外围事务。
需要注意的是,Spring的事务是逻辑事务,并不直接影响数据库事务的实现。每个被@Transactional注解标记的方法都会创建一个事务范围,这种事务范围是逻辑上的,而不是数据库事务的实现。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.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)