Spring 配置mysql事务不生效问题解决

关于事务配置的问题,在实际开发中遇到,spring事务配置不生效的问题,费尽周折,方才解决。spring

spring xml 配置express

<!-- 启用事务-->
<tx:advice id="txAdvice" transaction-manager="transactionManager">
   <tx:attributes>          
      <tx:method name="delete*" propagation="REQUIRED" />
      <tx:method name="update*" propagation="REQUIRED"/>
      <tx:method name="create*" propagation="REQUIRED" />
      <tx:method name="do*" propagation="REQUIRED" />
      <tx:method name="start*" propagation="REQUIRED" />
      <tx:method name="complete*" propagation="REQUIRED" />
      <tx:method name="*" read-only="true" />
   </tx:attributes>
</tx:advice>

<aop:config>
   <aop:pointcut id="serviceOperation"
      expression="execution (* com.pms.system.mgr.service.impl.*.*(..))" />
   <aop:advisor advice-ref="txAdvice" pointcut-ref="serviceOperation" />
</aop:config>

代码以下图:.net

代码执行到fiveClassFlowService.start(param)发生异常,catch后向外抛出,但xml

work_flow_localtion_relation表插入数据,fiveClassFlowService.start(param)里的表并未插入。blog

可见事务配置压根就不生效,检查了xml的事务配置段,硬是没发现问题。事务

最后几经查证,网上有说法是异常抛出RuntimeException会回滚,详见开发

http://blog.csdn.net/y909513070/article/details/54924956get

最后把代码作下以下修改,因而乎,问题解决io

 

作下笔记,以便回顾。配置

相关文章
相关标签/搜索