整合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

你可能感兴趣的:(spring)