整合springmvc+hibernate+spring事物无法回滚问题

在整合springmvc+hibernate+spring时用到事物的知识,但遇到事物无法回滚的问题。

问题描述:

业务代码:

1.

在service层进行搜索其他表的相关信息。

2.


在dao层进行查询数据,这里是当查询的数据为空或者查询出现异常的时候抛出一个RuntimeException给service层

3.


service层捕获到信息,并打印日志,且返回一个json数据格式的错误信息

4.


这是我的spring配置文件中配置事物的信息。



由于在步骤1的红框所标识的地方因为可能dao层查询原因或者是查询数据为空而抛出来的RuntimeException,在service层被捕获到。但是问题出现在,service层捕获到这个异常后,如果按照上述那样写,前台能接受到这样的json数据。但是数据库中会存入orderVO的信息,而后面PurchaseRecordVO的信息由于出现异常无法存入。这里就造成数据没有完全存入。虽然spring的配置文件中配置了事物,但并没有进行事物回滚,也就是orderVO信息并没有回滚。


解决方法

方法1:

service层捕获到异常后继续抛给上层(我这里是action层)一个RuntimeException。

,然后在上层action层try....catch一次捕获到异常,并对异常进行处理。这样能事物回滚

方法二


直接在service层的catch中捕获到异常后加上上述这句话,手动回滚事物。


参考文章:http://www.360doc.com/content/12/1109/18/6161903_246870991.shtml

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值