Spring框架支持事务的不同的传播方式,主要有以下几种。
propagation_required:
如果当前没事务,则新建一个事务,如果当前已经存在事务,则加入到这个事务当中,是Spring中默认的传播机制
propagation_required_new:
新建一个事务,如果当前存在事务,把当前事务挂起。
propagation_supports:
支持当前事务,如果当前没有事务就以非事务方式执行。表示该操作支持当前的事务。
propagation_not_supported:
以非事务方式执行,如果当前存在事务,把当前事务挂起。这表示该操作不支持当前的事务。
propagation_never:
表示当前方法不应该在事务中执行,会以非事务方式执行,如果当前存在事务,则抛出异常。
propagation_mandatory:
执行当前事务,如果当前没事务则抛出异常。
propagation_nested:
存在事务则运行在嵌套事务中,不存在则新建一个事务。表示在当前事务中嵌套一个子事务。如果当前存在事务,则嵌套事务将与外部事务共享其连接