一个SSH2的项目里面
假设一个Action如
TestAtion
他里面有两个Manager
如
[code="java"]
public class TestAction extends ActionSupport implements xxxxx{
private AaaaManager aManager;
private BbbbManager bManager;
[/code]
然后TestAction的一个方法里面
[code="java"]
public String save() {
aManager.saveaaa();//保存
。。。。。。。。。。
bbbbManager.savebbb() //假设这个是保存文件,如果这里出错了,这个就保存不了了,但是saveaaa却保存了了,这样事务就不一至了,请问大家这个怎么办啊。
}
[/code]
Spring的事务配置
[code="xml"]
<aop:config proxy-target-class="true">
<aop:advisor pointcut="execution(* com.xxxx.xxxxxManager.*Manager.aaa.*Manager.*(..))" advice-ref="txAdvice"/>
</aop:config>
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="get*" read-only="true"/>
<tx:method name="find*" read-only="true"/>
<tx:method name="paged*" read-only="true"/>
<tx:method name="*"/>
</tx:attributes>
</tx:advice>
[/code]
还有read-only="true"表示前面那个配的方法没有事务么
[b]问题补充:[/b]
我说是我保存两个对象的时候事务不一致
aManager.saveaaa();这个保存成功了
接下来再保存一个对象
bbbbManager.savebbb() 这个没有保存成功,出了异常,而roolback了,
但是前面的saveaaa()却保存成功了。。
[b]问题补充:[/b]
如果对这三个方法都设了事务呢?
最后怎么rollback啊
[b]问题补充:[/b]
我savebbb()保存不成功是因为程序的问题,因为SPRING里面事务在Manager里面,所以每个SAVE都是一个事务,所以事务不一致