Java中事务的传播性
时间: 2024-05-29 18:12:45 浏览: 12
Java中的事务传播性指的是在一个方法内部调用其他方法时,事务将如何传播到这些方法。
Java中的事务传播性有以下几种:
1. REQUIRED:如果当前存在事务,则加入该事务,否则新建一个事务。这是默认的事务传播级别。
2. SUPPORTS:如果当前存在事务,则加入该事务,否则不使用事务。
3. MANDATORY:必须在一个已经存在的事务中运行,否则抛出异常。
4. REQUIRES_NEW:新建一个事务,并挂起当前事务(如果存在)。
5. NOT_SUPPORTED:不使用事务,如果当前存在事务,则挂起该事务。
6. NEVER:不允许在事务上下文中运行,如果当前存在事务,则抛出异常。
7. NESTED:如果当前存在事务,则在嵌套事务中运行,否则新建一个事务。如果外部事务提交,则内部事务也会提交,但如果内部事务提交失败,则只有内部事务会回滚,而外部事务不会回滚。
事务传播性的选择应该根据实际情况和业务需求进行选择。
相关问题
springboot 事务的传播性
Spring Boot事务传播性是指在多个事务方法相互调用的情况下,事务是如何在这些方法中进行传递的。Spring Boot提供了7种不同的事务传播行为,分别是:
1. REQUIRED:如果当前存在事务,则加入该事务;如果当前没有事务,则创建一个新的事务。
2. SUPPORTS:如果当前存在事务,则加入该事务;如果当前没有事务,则以非事务的方式继续运行。
3. MANDATORY:如果当前存在事务,则加入该事务;如果当前没有事务,则抛出异常。
4. REQUIRES_NEW:创建一个新的事务,如果当前存在事务,则挂起该事务。
5. NOT_SUPPORTED:以非事务方式运行,如果当前存在事务,则挂起该事务。
6. NEVER:以非事务方式运行,如果当前存在事务,则抛出异常。
7. NESTED:如果当前存在事务,则在嵌套事务内执行;如果当前没有事务,则创建一个新的事务。
举个例子,假设方法A和方法B都有事务注解,方法A调用方法B,那么根据不同的传播行为,事务的处理方式也不同。如果传播行为是REQUIRED,那么方法B会加入方法A的事务中,如果方法A没有事务,则会创建一个新的事务。如果传播行为是REQUIRES_NEW,那么方法B会创建一个新的事务,与方法A的事务无关。
```java
@Transactional(propagation = Propagation.REQUIRED)
public void methodA() {
// do something
methodB();
}
@Transactional(propagation = Propagation.REQUIRES_NEW)
public void methodB() {
// do something
}
```
java事物传播行为,Spring事务传播行为详解
Java事务传播行为是指在多个事务同时存在的情况下,如何处理这些事务之间的相互影响。
Spring事务传播行为是Spring框架中用于控制事务的一种机制,它定义了在一个事务方法中调用另外一个事务方法时,两个事务之间的关系。
在Spring中,定义了7种事务传播行为:
1. REQUIRED:如果当前存在事务,则加入该事务;如果当前不存在事务,则创建一个新的事务。
2. SUPPORTS:如果当前存在事务,则加入该事务;如果当前不存在事务,则以非事务状态执行。
3. MANDATORY:如果当前存在事务,则加入该事务;如果当前不存在事务,则抛出异常。
4. REQUIRES_NEW:创建一个新的事务,并且如果当前存在事务,则将当前事务挂起。
5. NOT_SUPPORTED:以非事务状态执行,并且如果当前存在事务,则将当前事务挂起。
6. NEVER:以非事务状态执行,并且如果当前存在事务,则抛出异常。
7. NESTED:如果当前存在事务,则在该事务中嵌套一个新的事务;如果当前不存在事务,则创建一个新的事务。
每一个传播行为都有其特定的使用场景,需要根据具体的业务需求来选择合适的事务传播行为。
相关推荐
![](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)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)