本文共 515 字,大约阅读时间需要 1 分钟。
Spring在TransactionDefinition接口中规定了7种事务传播行为,他们规定了事务方法和事务方法发生嵌套时事务如何进行传播。
所谓事务的传播行为是指,如果在开始当前事务之前,一个事务上下文已经存在,此时有若干选项可以指定一个事务性方法的执行行为。
PROPAGATION_REQUIRED
默认事务类型,如果没有,就新建一个事务;如果有,就加入当前事务。适合绝大多数情况。PROPAGATION_REQUIRES_NEW
如果没有,就新建一个事务;如果有,就将当前事务挂起。PROPAGATION_NESTED
如果没有,就新建一个事务;则创建一个事务作为当前事务的嵌套事务来运行。PROPAGATION_SUPPORTS
如果没有,就以非事务方式执行;如果有,就使用当前事务。PROPAGATION_NOT_SUPPORTED
如果没有,就以非事务方式执行;如果有,就将当前事务挂起。即无论如何不支持事务。PROPAGATION_NEVER
如果没有,就以非事务方式执行;如果有,就抛出异常。PROPAGATION_MANDATORY
如果没有,就抛出异常;如果有,就使用当前事务。即强制要有事务。转载地址:http://emnvz.baihongyu.com/