事务传播的7种行为
1.PROPAGATION_REQUIRED
2.PROPAGATION_SUPPORTS
3.PROPAGATION_MANDATORY
4.PROPAGATION_REQUIRES_NEW
5.PROPAGATION_NOT_SUPPORTED
6.PROPAGATION_NEVER
7.PROPAGATION_NESTED
我们可以看一下源码上,作者对这几种方式的注解。
public enum Propagation {
/**
* 支持当前事务,如果不存在,就创建一个新事务。
*/
REQUIRED(TransactionDefinition.PROPAGATION_REQUIRED),
/**
* 支持当前事务,如果不存在,以非事务的方式执行
*/
SUPPORTS(TransactionDefinition.PROPAGATION_SUPPORTS),
/**
* 支持当前事务,如果不存在,抛出异常
*/
MANDATORY(TransactionDefinition.PROPAGATION_MANDATORY),
/**
*创建一个新事务,如果存在当前事务,则挂起当前事务。
*/
REQUIRES_NEW(TransactionDefinition.PROPAGATION_REQUIRES_NEW),
/**
* 以非事务方式执行,如果存在当前事务,则挂起当前事务。
*/
NOT_SUPPORTED(TransactionDefinition.PROPAGATION_NOT_SUPPORTED),
/**
* 以非事务方式执行,如果存在事务则抛出异常。
*/
NEVER(TransactionDefinition.PROPAGATION_NEVER),
/**
* 如果当前事务存在,则在嵌套事务中执行,
行为类似于PROPAGATION_REQUIRED else
*/
NESTED(TransactionDefinition.PROPAGATION_NESTED);
private final int value;
Propagation(int value) { this.value = value; }
public int value() { return this.value; }
}
本文详细介绍了7种事务传播行为:PROPAGATION_REQUIRED、PROPAGATION_SUPPORTS、PROPAGATION_MANDATORY、PROPAGATION_REQUIRES_NEW、PROPAGATION_NOT_SUPPORTED、PROPAGATION_NEVER和PROPAGATION_NESTED。每种行为的定义及其在事务管理中的作用都被清晰地解释。
1738

被折叠的 条评论
为什么被折叠?



