spring配置了事务,抛出异常不回滚
数据库是sqlserver2008配置文件是这样的在client包下有个类的方法叫createXML,中间需要保存四张表,第一张保存成功,第二章catch出异常了,但第一...
数据库是sql server2008
配置文件是这样的
在client包下有个类的方法叫createXML,中间需要保存四张表,第一张保存成功,第二章catch出异常了,但第一张表还是保存成功了,这是为什么? 展开
配置文件是这样的
在client包下有个类的方法叫createXML,中间需要保存四张表,第一张保存成功,第二章catch出异常了,但第一张表还是保存成功了,这是为什么? 展开
1个回答
展开全部
如果你在createXML方法最后catch了异常,并且没有往外抛,那么数据不会滚的。
你可以这样尝试一下把rollback-for属性去掉,并且咋createXML中不做任何异常捕捉,
这样肯定可以回滚。因为
spring默认可以回滚 在抛出运行时和unchecked exceptions时才标识事务回滚,
也就是说,当抛出一个 RuntimeException 或其子类例的实例时。(Errors 也一样 - 默认地 - 标识事务回滚。)从事务方法中抛出的Checked exceptions将 不 被标识进行事务回滚
你可以这样尝试一下把rollback-for属性去掉,并且咋createXML中不做任何异常捕捉,
这样肯定可以回滚。因为
spring默认可以回滚 在抛出运行时和unchecked exceptions时才标识事务回滚,
也就是说,当抛出一个 RuntimeException 或其子类例的实例时。(Errors 也一样 - 默认地 - 标识事务回滚。)从事务方法中抛出的Checked exceptions将 不 被标识进行事务回滚
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询