关于spring的事务处理问题!!

06-06-10 springer
最近在用spring+hibernate做一个小的信息发布系统。在开发过程中,遇到一个这样的问题。

spring的代理服务类在处理因为hibernate执行数据库操作而引起的异常会进行事务的回滚,而对于程序业务规则判断而抛出异常则不会引起回滚。那位大侠能帮我解释下原因?最好能告诉我下解决这样的问题的方案。先谢谢拉。程序的大概调用流程如下边代码所示:

public update(){
    //hibernate执行数据操作
    insertDB1();
    /*程序进行业务判断处理,如果不符合规范就抛出一个异常
    */    
    checkData();
    //hibernate执行数据操作
    insertDB2();
}
<p>

上边的操作如果insertDB2()抛出异常事务会回滚,而checkData()抛出异常,insertDB1()的操作被正常执行完毕,不会回滚。

banq
2006-06-11 15:35
需要在spring配置中对你的Service方法配置事务,参考JPetstore.

springer
2006-06-13 08:53
谢谢banq老师拉。

研究下先!

猜你喜欢