langhua9527 2009-06-23 15:50 采纳率: 0%
浏览 319
已采纳

spring的事务不一致

一个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都是一个事务,所以事务不一致

  • 写回答

4条回答 默认 最新

  • wanghaolovezlq 2009-06-23 16:56
    关注

    看你定义的切面

    你是对Manager后缀的service进行管理事务。

    aManager.saveaaa();//这个是一个单独的事务

    。。。。。。。。。。

    bbbbManager.savebbb()//这个又是一个单独的事务

    所以,这两个事务是不相关的,
    自然出现了你这种情况

    你应该是对
    public String save() {
    aManager.saveaaa();//保存
    。。。。。。。。。。
    bbbbManager.savebbb() //假设这个是保存文件,如果这里出错了,这个就保存不了了,但是saveaaa却保存了了,这样事务就不一至了,请问大家这个怎么办啊。

    }这个方法进行事务管理,那就没问题了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 ue5 .3之前好好的现在只要是激活关卡就会崩溃
  • ¥50 MATLAB实现圆柱体容器内球形颗粒堆积
  • ¥15 python如何将动态的多个子列表,拼接后进行集合的交集
  • ¥20 vitis-ai量化基于pytorch框架下的yolov5模型
  • ¥15 如何实现H5在QQ平台上的二次分享卡片效果?
  • ¥15 python爬取bilibili校园招聘网站
  • ¥30 求解达问题(有红包)
  • ¥15 请解包一个pak文件
  • ¥15 不同系统编译兼容问题
  • ¥100 三相直流充电模块对数字电源芯片在物理上它必须具备哪些功能和性能?