关于Spring事务控制的困扰,高手请进!
关于Spring的事务控制有个一直想不明白的地方,那就是事制范围的控制.按照spring自己提供的simple以及网上能找到的例子.大家似乎都在用一个Service接口+TransactionTemplate的模式来管理事务.这样,一个事务以Service为进行单位划分.
但是,如果在一个Controller里,需要调用2-3个Service时,这些Service之间的事务能够整合成一个整体吗?根据当前项目中出现的问题,发现spring控制的不是很好.每个Service调用结束后都会提交自己的事务,将数据保存到数据库,其他Service即使发生了异常,也无法回滚前一个Service的事务.(虽说理想状态下,一个Controller里只有一个Service的调用,但是理想终归是理想....)
所以,请问大家,Spring中有没有将事务控制在一次会话提交的范围内的办法?也就是说,希望用户点击一个按钮后直到结果页面出现,这个过程中任何异常都能保证事务完整回滚,这样的事务管理方式大家后没有用过呢?如果有好的办法,希望能和我们分享一下,高分赐教!
当前项目的状态: spring1.2.8 + hibernate3.0
为了对应Hiberante,已经备置了OpenSessionInViewFilter.
由于多个模块并行开发,经常出现一个Controller中调用多个模块的Service的现象.