我有一组服务方法,它们具有各种DAO保存操作。目前我的事务建议是在服务级别。如果任何一个服务方法中存在任何异常,我将如何设置事务建议以回滚整个服务方法。
<tx:method name="saveMethod1" propagation="REQUIRED"
rollback-for="com.demo.CustomException" />
我不能将所有这些saveMethod1,saveMethod2,saveMethod3操作都放在一个方法中,因为还有其他一些逻辑需要完成。
答案 0 :(得分:0)
最简单的方法是创建一个具有一个调用所有DAO的方法的新服务。但是,如果您需要现有方法中的其他逻辑,那么替代方法是将现有服务方法调用包装在一个方法中(另一个服务,因此您通过代理调用公共方法)并进行事务处理。被调用的方法必须将其事务传播设置为REQUIRES,以便它们可以参与由包装方法实现的事务。因为这是你所指定的,所以应该没有问题。