Spring事务的传播机制
-
@Transactional(propagation=Propagation.REQUIRED)
如果存在事务,则用当前事务,如果不存在则创建一个新事务。这是事务注释的默认设置 -
@Transactional(propagation=Propagation.SUPPORTS)
如果存在事务,则用当前事务,如果不存在则以非事务方式执行。 -
@Transactional(propagation=Propagation.MANDATORY)
必须以事务方式执行,如果不存在事务则抛出异常。 -
@Transactional(propagation=Propagation.REQUIRES_NEW)
无论是否存在事务都创建一个新事务,如果存在事务,则先挂起当前事务。先执行新的事务,执行完成再执行老的事务。 -
@Transactional(propagation=Propagation.NOT_SUPPORTED)
以非事务方式执行,如果存在则暂停当前事务。 -
@Transactional(propagation=Propagation.NEVER)
必须以非事务方式执行,如果存在事务则抛出异常。(和MANDATORY相反) -
@Transactional(propagation=Propagation.NESTED)
如果当前事务存在,则在嵌套事务中执行,否则行为类似于REQUIRED。
一个满怀梦想的无知骚年!

浙公网安备 33010602011771号