日期:2014-05-17  浏览次数:20703 次

spring事务
现在项目中,有这种情况,<tx:method name="*" propagation="REQUIRED" rollback-for="Throwable" />,已经配置好了这种事务管理,然后就是A调用B,B调用C,我想着A是一个事务,B使用try catch,不使用事务,C也使用事务,但是不和A是一个事务。这种情况怎么解决啊。求大神帮助
spring? 事务

------解决方案--------------------
你是怎么样? c的事务,提交不影响A?,调用时a异常了,a事务回滚, c有事务提交。
调用时,c异常了,事务回滚,b处理了异常, a的事务照样提交?
是这样吗?
那么你的事务传播,就要改改了,
a的propagation="REQUIRES_NEW"使用新事务
------解决方案--------------------
在B方法定义处加上注解@Transactional(propagation=Propagation.REQUIRES_NEW),创建新的事务;同时在配置文件中对基于注解的方式使用事务进行配置声明<tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true" />