Spring 的事务传播性

spring 的事务传播性

常量名称 常量解释
PROPAGATION_REQUIRED spring中的默认事务传播机制。支持当前事务,如果当前没有事务,就新建一个事务。
PROPAGATION_REQUIRES_NEW 新建事务,如果当前存在事务,则将当前事务挂起。新建的事务和被挂起的事务没有关联,是两个独立的事务,外层事务失败回滚后,不会影响到内层的事务。内层事务失败抛出异常后,外层事务捕获,也可以不处理回滚操作。
PROPAGITION_SUPPORTS 支持当前事务,如果当前没有事务,就以非事务方式运行
PROPAGITION_MANDATORY 支持当前事务,如果当前没有事务,则抛出异常。
PROPAGITION_NOT_SUPPORTED 以非事务方式运行,如果当前存在事务,则将当前事务挂起
PROPAGITION_NEVER 以非事务方式运行,如果当前存在事务,则抛出异常。
PROPAGITION_NESTED 如果一个活动事务存在,则运行在一个嵌套事务中。如果没有活动事务,则按REQUIRED运行。它使用了一个单独的事务,这个事务拥有多个可以回滚的保存点。内部事务的回滚不会对外部事物造成影响。他只对DataSourceTransationManager事务管理器起效。

REQUIREDREQUIRES_NEW : 两个方法必须在不同的类中才会生效,才会创建新的事务。否则只会创建一个。