java吧 关注:1,256,476贴子:12,747,782
  • 15回复贴,共1

【求助】关于springboot事物回滚的疑问

只看楼主收藏回复

我在service中定义了一个删除的方法,删除的方法调用了另外一个真正执行删除操作的test方法。当我把transactional注解放在delete方法上的时候,执行删除操作后因为删除后有异常抛出,所以事物进行了回滚。但是我把注解放在test方法上(去掉delete方法上的注解),则删除成功,虽然后面有异常抛出,但是事物没有进行回滚,请问各位大大这是怎么回事啊


1楼2017-07-13 09:48回复
    在网上找到了答案:http://blog.csdn.net/dapinxiaohuo/article/details/52092447这篇文章解释了为什么在同一个类中调用另外一个方法事物没有回滚的原因,还没有完全看懂,不过大致知道事物没有回滚的方向了


    2楼2017-07-13 10:07
    回复
      为什么事务直接的方法要互相调用呢


      IP属地:湖南3楼2017-07-13 10:22
      收起回复
        你的seerException是runtimeException吗


        IP属地:广东来自iPhone客户端6楼2017-07-13 11:23
        收起回复
          你调用delete是代理调的吧,不用代理没事务,注解放在test上和没放一个效果


          IP属地:浙江来自Android客户端7楼2017-07-13 12:44
          收起回复
            spring aop同一个类中方法互相调用,aop不会起作用


            8楼2017-07-13 12:52
            收起回复
              你可以通过配置spring事务的传播行为来改变原有策略。


              IP属地:福建9楼2017-07-13 15:06
              回复