关于spring事务提交问题

小99 发布于 2014/04/16 17:12
阅读 1K+
收藏 0
我现在有一个service实现类,用spring拦截的,拦截情况如下:
<tx:advice id="txAdvice" transaction-manager="transactionManager">
		<tx:attributes>
			<tx:method name="save*" propagation="REQUIRED" />
			<tx:method name="update*" propagation="REQUIRED" />
			<tx:method name="remove*" propagation="REQUIRED" />
			<tx:method name="create*" propagation="REQUIRED" />
			<tx:method name="insert*" propagation="REQUIRED" />
			<tx:method name="add*" propagation="REQUIRED" />
			<tx:method name="delete*" propagation="REQUIRED" />
			<tx:method name="batch*" propagation="REQUIRED" />
			<tx:method name="firecontrolsave*" propagation="REQUIRED" />
			<tx:method name="logAssetFind*" propagation="NOT_SUPPORTED" />
		</tx:attributes>
	</tx:advice>

我有一个firecontrolsave开头的方法(事务控制已经配置倒数第二行),里面调用一个save开头的方法(都在一个类中),这个save方法里面向两张表添加数据,如果出错不回滚,这怎么回事!



以下是问题补充:

@小99:一个方法里面调用另一个方法,事务不管用吗? (2014/04/16 17:13)
@小99:我在方法里面直接try的,捕获到就直接打印日志了,是不是不能这么干?是不是应该在throw new一个异常出去让spring知道才能回滚? (2014/04/16 18:06)
加载中
1
Sampher
Sampher

Spring 当捕捉到RuntimeException 这种类型的错误才会回滚,当你catch  到这个SQLException后应该再throw一个 RuntimeException 这种类型的异常。

小99
小99
嗯!谢谢你的回答
0
大大大大王

convertToRuntimeException

返回顶部
顶部