我刚才从网上看到spring的事务回滚。。
说:spring 的异常再Dao层要往上抛,并且在service层也不要try catch.而是要让spring容器自己去
捕获异常。如果再service层try了的话。那spring容易就会认为你已经自己处理掉了异常。
因此spring容器就不会回滚事务了。而是直接commit;
请问大家 是这样不??

解决方案 »

  1.   

    spring是用动态代理的方式来处理事务的,我们做的时候只需要一些简单的配置就可以了,不喜欢这个框架,心里不踏实!关于LZ说的这个理论,没听说过啊!
      

  2.   

    你的事物配置在service层吗?是的话,只要service层或dao层有异常,就会回滚吧,个人见解
      

  3.   

    最好不要捕捉,在service捕捉了异常如果不再抛出去,那么spring就不会发现有异常
      

  4.   

    不会回滚,你异常都已经让你给捕捉了,spring也无法感知到你的程序抛出了异常,感知不到,怎么可能会去回滚了!
      

  5.   

     我记得好像spring事务遇到RuntimeException时候才会回滚,其他异常是不会回滚的
      

  6.   

    结贴了。
    我试了一下最后 
    感觉是如果自己catch了Exception的话。事物没有回滚的。
    还有就是spring不是对所有的异常都回滚的。这个文档上有 
    其中文档上说事物回滚的地方也说了
    spring将获取到未处理的异常,然后回滚。。不知道我试验的结果对不对  呵呵