日期:2014-05-18  浏览次数:20570 次

请教spring 事务的问题
我在一个方法上,用了spring 的事务,方法中有几个访问数据库的操作。
其中一个操作,会抛出异常,这是正常逻辑范围内的,我捕获了异常,继续处理。
但spring却会因为这个异常,把事务终止掉,请问有什么办法让spring忽略这个异常,正常进行事务?

我的异常中这样产生的:
数据库操作用了nowait方式的加锁

select id from table where id = 'xxx' for update nowait;

我的逻辑是,加锁取id为xxx的记录,如果被别的线程锁住了,会抛出异常,我捕获异常,继续取下一条id为'yyy'的记录,如果取到,则更新某些字段。

这个select for update nowait的异常,是正常逻辑,我不希望中止事务。
应该咋处理啊?

------解决方案--------------------
spring的事物控制是放到哪里配置的?具体是怎么配置的?
------解决方案--------------------
配置一个异常通知,在异常通知里完成你的逻辑吧