事务传播行为类型 |
说明 |
PROPAGATION_REQUIRED |
如果当前没有事务,就新建一个事务,如果已经存在一个事务中,加入到这个事务中。这是 最常见的选择。 |
PROPAGATION_SUPPORTS |
支持当前事务,如果当前没有事务,就以非事务方式执行。 |
PROPAGATION_MANDATORY |
使用当前的事务,如果当前没有事务,就抛出异常。 |
PROPAGATION_REQUIRES_NEW |
新建事务,如果当前存在事务,把当前事务挂起。 |
PROPAGATION_NOT_SUPPORTED |
以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。 |
PROPAGATION_NEVER |
以非事务方式执行,如果当前存在事务,则抛出异常。 |
PROPAGATION_NESTED |
如果当前存在事务,则在嵌套事务内执行。如果当前没有事务,则执行与 PROPAGATION_REQUIRED 类似的操作。 |
1当前有事务
1.1 一个事务 t1 传播行为 PROPAGATION_REQUIRED
1.2 另一个事务 t2 传播行为 PROPAGATION_REQUIRES_NEW
结论:(1)事务执行顺序 先t1后t2
当t2 抛错回滚,t1也会被回滚
(2)事务执行顺序 先t2后t1 当t1报错回滚 t2不回滚
来源:oschina
链接:https://my.oschina.net/u/3053051/blog/797100