mysql的事务传播机制
时间: 2023-07-28 21:47:32 浏览: 97
MySQL 的事务传播机制指的是在多个事务同时执行时,事务之间的相互影响和调用关系。MySQL 支持如下几种事务传播机制:
1. PROPAGATION_REQUIRED:如果当前没有事务,则开启一个新的事务;如果已经存在事务,则加入该事务,成为一个整体。这是默认的传播机制。
2. PROPAGATION_SUPPORTS:如果当前存在事务,则加入该事务;如果不存在事务,则以非事务模式执行。
3. PROPAGATION_MANDATORY:如果当前存在事务,则加入该事务;如果不存在事务,则抛出异常。
4. PROPAGATION_REQUIRES_NEW:无论当前是否存在事务,都开启一个新的事务,并挂起当前事务。
5. PROPAGATION_NOT_SUPPORTED:以非事务模式执行,如果当前存在事务,则挂起该事务。
6. PROPAGATION_NEVER:以非事务模式执行,如果当前存在事务,则抛出异常。
7. PROPAGATION_NESTED:如果当前存在事务,则在该事务的嵌套事务中执行;如果当前不存在事务,则开启一个新的事务。
在 MySQL 中,事务传播机制可以通过 @Transactional 注解来设置,例如:
```java
@Transactional(propagation = Propagation.REQUIRED)
public void doSomething() {
// ...
}
```
在上面的代码中,@Transactional 注解的 propagation 属性设置为 PROPAGATION_REQUIRED,表示当前方法的事务传播机制为 PROPAGATION_REQUIRED。
阅读全文