spring的事物传递

Propagation.REQUIRED:默认也是常用的事物级别,在当前事物中执行,不存在事物,则创建新事物执行。

Propagation.SUPPORTS:支持使用当前事物,当前事物不存爱,则不使用事物。

Propagation.MANDATORY:强制在事物中执行,不存在事物,抛出异常

Propagation.REQUIRES_NEW:创建新事物执行,存在当期事物,则挂起当期事物

Propagation.NOT_SUPPORTED:无事务执行,如果当前事务存在,把当前事务挂起。

Propagation.NEVER:无事务执行,如果当前有事务则抛出Exception

Propagation.NESTED:与REQUIRED类似

 仅个人理解

实例;

<tx:advice id="txAdvice" transaction-manager="transactionManager">
  <tx:attributes>
   <tx:method name="update*" propagation="REQUIRED" />
   <tx:method name="save*" propagation="REQUIRED" />
   <tx:method name="add*" propagation="REQUIRED" />
   <tx:method name="merge*" propagation="REQUIRED" />
   <tx:method name="insert*" propagation="REQUIRED" />
   <tx:method name="create*" propagation="REQUIRED" />
   <tx:method name="delete*" propagation="REQUIRED" />
   <tx:method name="publish*" propagation="REQUIRED" />
   <tx:method name="invalidate*" propagation="REQUIRED" />
   <tx:method name="executeEngine*" propagation="REQUIRED" />
   <tx:method name="batchCreate*" propagation="REQUIRED" />
   <tx:method name="forward*" propagation="REQUIRED" />
   <tx:method name="agree*" propagation="REQUIRED" />
   <tx:method name="refuse*" propagation="REQUIRED" />
   <tx:method name="complete*" propagation="REQUIRED" />
   <tx:method name="cancel*" propagation="REQUIRED" />
   <tx:method name="forward*" propagation="REQUIRED" />
   <tx:method name="file*" propagation="REQUIRED" />
   <tx:method name="modify*" propagation="REQUIRED" />
   <tx:method name="del*" propagation="REQUIRED" />
   <tx:method name="deploy*" propagation="REQUIRED" />
   <tx:method name="find*" propagation="REQUIRED" />
  </tx:attributes>
 </tx:advice>

posted @ 2020-04-27 18:08  CoderRdf  阅读(276)  评论(0)    收藏  举报