spring 的事务传播机制

PROPAGATION_REQUIREDspa

--支持当前事务,若是当前没有事务,就新建一个事务。这是最多见的选择。 事务

PROPAGATION_SUPPORTSit

--支持当前事务,若是当前没有事务,就以非事务方式执行。 io

PROPAGATION_MANDATORY配置

--支持当前事务,若是当前没有事务,就抛出异常。 date

PROPAGATION_REQUIRES_NEW异常

--新建事务,若是当前存在事务,把当前事务挂起。 vi

PROPAGATION_NOT_SUPPORTEDtransaction

--以非事务方式执行操做,若是当前存在事务,就把当前事务挂起。 管理

PROPAGATION_NEVER

--以非事务方式执行,若是当前存在事务,则抛出异常。 

PROPAGATION_NESTED

--若是当前存在事务,则在嵌套事务内执行。若是当前没有事务,

则进行与PROPAGATION_REQUIRED相似的操做


一般状况下通常都是使用REQUIRED

<!-- 配置事务管理器-->

<tx:advice id="txAdvice" transaction-manager="txManager">

<tx:attributes>

<tx:method name="find*" read-only="true"></tx:method>

<tx:method name="add*" propagation="REQUIRED" />

<tx:method name="update*" propagation="REQUIRED" />

<tx:method name="del*" propagation="REQUIRED" />

</tx:attributes>

</tx:advice>  

相关文章
相关标签/搜索