请把你save的添加商户和添加user的动作抽取到一个方法里面,然后加上事务 @Transactional例如 @Transactional
     private void save(){
       //添加商户
       //添加user
}
希望你能成功,具体可以看下百度下事务。

解决方案 »

  1.   

    不好意思 得写成public 的 因为事务特性 private时候不能识别
      

  2.   

    我看了下,配置文件没什么问题,,楼主你确定报了java.sql.BatchUpdateException这个异常后不回滚?!要不配置文件中干脆把这个异常去掉试试。
      

  3.   

    恩,不回滚,配置文件去掉那个rollback-for也一样。
      

  4.   

    DAO下的save方法都是spring反向生成的,类似:
    public void save(MerchantInfo transientInstance) {
    log.debug("saving MerchantInfo instance");
    try {
    getHibernateTemplate().save(transientInstance);
    log.debug("save successful");
    } catch (RuntimeException re) {
    log.error("save failed", re);
    throw re;
    }
    }
      

  5.   

    你是不是在DAO层处理的异常,应该向上抛出异常,或者在DAO层不Try Catch异常
      

  6.   

    你这action又是扩展HttpServlet ,又是dopost的。这个不是servlet啊。