public enum Propagation {
/**
* 支持当前事务,如果不存在则创建一个新事务。类似于同名的EJB事务属性。
* 这是默认的事务传播行为。
*/
REQUIRED(TransactionDefinition.PROPAGATION_REQUIRED),
/**
* 支持当前事务,如果不存在则非事务执行。类似于同名的EJB事务属性。
* 注意: 对于具有事务同步的事务管理器,SUPPORTS与根本没有事务略有不同,
* 因为它定义了将应用同步的事务范围。 因此,将为整个指定范围共享相同的资源(JDBC连接,休眠会话等)。
* 共享相同的资源(JDBC连接,休眠会话等)。
* @see org.springframework.transaction.support.AbstractPlatformTransactionManager#setTransactionSynchronization
*/
SUPPORTS(TransactionDefinition.PROPAGATION_SUPPORTS),
/**
* 支持当前事务,如果不存在则抛出异常。 类似于同名的EJB事务属性。
*/
MANDATORY(TransactionDefinition.PROPAGATION_MANDATORY),
/**
* 创建一个新事务,如果存在则暂停当前事务。类似于同名的EJB事务属性。
* @see org.springframework.transaction.jta.JtaTransactionManager#setTransactionManager
*/
REQUIRES_NEW(TransactionDefinition.PROPAGATION_REQUIRES_NEW),
/**
* 以非事务方式执行,如果当前事务存在,则挂起当前事务。 类似于同名的EJB事务属性。
* @see org.springframework.transaction.jta.JtaTransactionManager#setTransactionManager
*/
NOT_SUPPORTED(TransactionDefinition.PROPAGATION_NOT_SUPPORTED),
/**
* 非事务执行,如果存在事务,则引发异常。 类似于同名的EJB事务属性。
*/
NEVER(TransactionDefinition.PROPAGATION_NEVER),
/**
* 如果当前事务存在,则在嵌套事务中执行,否则,其行为类似于REQUIRED。EJB中没有类似功能。
* 注意: 实际创建嵌套事务将仅在特定事务管理器上起作用。开箱即用,
* 这仅适用于JDBC DataSourceTransactionManager。一些JTA提供程序可能也支持嵌套事务。
* @see org.springframework.jdbc.datasource.DataSourceTransactionManager
*/
NESTED(TransactionDefinition.PROPAGATION_NESTED);
private final int value;
Propagation(int value) {
this.value = value;
}
public int value() {
return this.value;
}
}
版权属于:带翅膀的猫
本文链接:https://www.chengpengper.cn/archives/83/
转载时须注明出处及本声明