目录
1.PROPAGATION_REQUIRED(required)
2.PROPAGATION_REQUIRES_NEW(requires_new)
3.PROPAGATION_SUPPORTS(supports)
4.PROPAGATION_NOT_SUPPORTED(not_supported)
5.PROPAGATION_MANDATORY(mandatory : 强制性的)
7.PROPAGATION_NESTED(nested: 嵌套的)
1.什么是事务传播行为?
指的是当一个事务方法(A)被另一个事务方法(B)调用时候,这个事务方法(A)应该如何运行。
2.事务传播行为有哪些种类?
文字版:
|
事务传播行为类型 |
说明 |
1 |
PROPAGATION_REQUIRED |
如果当前没有事务,就新建一个事务,如果已经存在一个事务中,加入到这个事务中。这是最常见的选择。 |
2 |
PROPAGATION_SUPPORTS |
支持当前事务,如果当前没有事务,就以非事务方式执行。 |
3 |
PROPAGATION_MANDATORY |
使用当前的事务,如果当前没有事务,就抛出异常。 |
4 |
PROPAGATION_REQUIRES_NEW |
新建事务,如果当前存在事务,把当前事务挂起。 |
5 |
PROPAGATION_NOT_SUPPORTED |
以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。 |
6 |
PROPAGATION_NEVER |
以非事务方式执行,如果当前存在事务,则抛出异常。 |
7 |
PROPAGATION_NESTED |
如果当前存在事务,则在嵌套事务内执行。如果当前没有事务,则执行与PROPAGATION_REQUIRED类 似的操作。 |
图片版:
图文链接:https://www.processon.com/view/link/60cafca75653bb3c31ed093d
3.实例
#基础环境
我准备两张表,分别是表A和B
ServicerA实现类中的插入方法
@Override
public Result<Object> insertA(A param) {
aMapper.insert(param);
return Result.success("成功");
}
ServiceB实现类中的插入方法
@Override
public Result<Object> insertB(B param) {
bMapper.insert(param);
return