本帖最后由 zhangchu_63 于 2010-11-23 14:17:08 编辑

解决方案 »

  1.   

    用过hibernate,事物交给spring 管理。
    jdbc没用过。
      

  2.   


    <!-- 配置事务属性 -->
            <property name="transactionAttributes">
                <props>
                    <prop key="update*">PROPAGATION_REQUIRED</prop>
                    <prop key="query*">PROPAGATION_REQUIRED,readOnly</prop>
                    <prop key="*">PROPAGATION_REQUIRED</prop>
                </props>
            </property>
    这个问题事务属性的配置就可以解决,PROPAGATION_REQUIRED表示支持当前事务,如果当前没有事务,就新建一个事务。程序在SERVICE A起一个事务,SERVICE A里面又调用了SERVICE B,此时SERVICE B不是另起一个事务,而是加入到了SERVICE A的事务中了,如果SERVICE B失败,则SERVICE A同样会回滚。
      

  3.   


    +1  了解下spring的几种事务管理机制。里面说的,就是你需要的