今天早上一个同事请教我一个问题。在他写的service中 数据库操作明明报出了exception可是事务不回滚。
刚开始以为是事务的嵌套操作引起的,可是把所有肯能的嵌套因素全部去掉之后还是不回滚。后来从网上找资料才发现错误:
他的事务声明所有的service里的方法都要做事务管理。我们在service方法里面对excepion做了处理。这样在struts里面调用service方法的时候不回捕获异常(因为异常已经在service层做过处理了),而捕获不到异常事务当然就不会回滚。
刚开始以为是事务的嵌套操作引起的,可是把所有肯能的嵌套因素全部去掉之后还是不回滚。后来从网上找资料才发现错误:
他的事务声明所有的service里的方法都要做事务管理。我们在service方法里面对excepion做了处理。这样在struts里面调用service方法的时候不回捕获异常(因为异常已经在service层做过处理了),而捕获不到异常事务当然就不会回滚。