session=HibernateUtils.getSessionFactory().getCurrentSession();
trans=session.getTransaction();
trans.begin();
session.save(user);
         trans.rollback();经过调试 发现在session.save(user)时 在数据库中插入了一条数据, 但是在trans.rollback()后数据库中user这条数据还在hibernate.cfg.xml中的配置是
<property name="hibernate.current_session_context_class">thread</property>
<property name="hibernate.transaction.factory_class">                org.hibernate.transaction.JDBCTransactionFactory</property>
   <property name="hibernate.connection.autocommit">false</property>
大家帮帮忙吧

解决方案 »

  1.   

    因为在调用session.save()时,hibernate同时执行了session.flush(),这个方法是清理(注意不是清空!)hibernate缓存,同时发送SQL语句到数据库(但并没有更新数据库,直到commit()后才更新)
      

  2.   

    可能我表述的不是很清楚,我的意思是说,我save 了以后 又rollback 但是数据库中的还是插入了一条数据。
    我猜想是不是 配置哪里不合适,还是环境问题。
      

  3.   

    经过测试发现 原来是mysql 环境设置的不是太对。
    问题已经解决
      

  4.   

    小弟今天 也遇到一样的问题了,不知道mysql环境设置是哪里不对?