你把着两个写到一个函数里面吧
public void deleteA(){
   // 增加
   // 删除
}还有,看看是不是程序有问题,比如处理了异常,而不是抛出

解决方案 »

  1.   

    try {
         HibernateTemplate template = getHibernateTemplate();
         template.save(group);
        
         GroupInfo g = (GroupInfo)template.find("from GroupInfo as g where g.g_name = b'"); //这一行会抛异常
         } catch(Exception e ) {
         throw new DataOperationException();
         }上面这段代码应该在抛出异常后,将插入的数据回滚,可是却不行,到底是怎么回事呢?
      

  2.   

    还有你的方法名叫说明能被spring的事务切着吗
    要会滚这个方法必须在spring中是事务性的,别关使用声明的还是编程式的
      

  3.   

    估计你贴的代码是DAO里的,看看你service(即spring业务层)里的方法名与配置名是否对应。
    另外如果你希望发生DataOperationException时回滚,那还需要在service方法里抛出该异常。
      

  4.   

    你的数据库支持事务不,好象mysql不行啊
      

  5.   

    mysql是支持事务的,只是5.0以下不支持存储过程
      

  6.   

    问题解决了,换了个声明方式
    <bean name="transactionInterceptorBeanGroup"
    class="org.springframework.transaction.interceptor.TransactionInterceptor">
    <property name="transactionManager">
    <ref bean="transactionManager"/>
    </property>

    <property name="transactionAttributes">
    <props>
    <prop key="add*">PROPAGATION_REQUIRED</prop>
    <prop key="modify*">PROPAGATION_REQUIRED</prop>
    <prop key="delete*">PROPAGATION_REQUIRED</prop>
      
    </props>
    </property>
    </bean> <bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
    <property name="beanNames">
    <list>
    <value>UserFeeManageBiz</value>
    </list>
    </property>
    <property name="interceptorNames">
             <list>
                 <value>transactionInterceptorBeanGroup</value>
    </list>
    </property>
        </bean> 不知原来的写法到底哪里出现了问题
      

  7.   

    要回滚,必须抛出的RuntimeException();其他的不可以。我测试过的!