Spring中事务传播行为种类
Spring中事务传播行为种类
Spring在TransactionDefinition接口中规定了7种类型的事务传播行为,Spring中事务传播行为是Spring框架提供的一种事务管理方式,它不是数据库提供的。它们规定了事务方法和事务方法发生嵌套调用时事务如何进行传播:
事务的传播行为 | 说明 |
---|---|
PROPAGATION_REQUIRED | 如果当前存在事务,则加入该事务,如果当前不存在事务,则创建一个新的事务。 |
PROPAGATION_SUPPORTS | 如果当前存在事务,则加入该事务;如果当前不存在事务,则以非事务的方式继续运行。 |
PROPAGATION_MANDATORY | 如果当前存在事务,则加入该事务;如果当前不存在事务,则抛出异常。 |
PROPAGATION_REQUIRES_NEW | 重新创建一个新的事务,如果当前存在事务,延缓当前的事务。 |
PROPAGATION_NOT_SUPPORTED | 以非事务的方式运行,如果当前存在事务,暂停当前的事务。 |
PROPAGATION_NEVER | 以非事务的方式运行,如果当前存在事务,则抛出异常。 |
ROPAGATION_NESTED | 如果没有,就新建一个事务;如果有,就在当前事务中嵌套其他事务。 |