首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

hibernate运用save 后rollback不起作用

2012-11-06 
hibernate使用save 后rollback不起作用sessionHibernateUtils.getSessionFactory().getCurrentSession()

hibernate使用save 后rollback不起作用
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>




大家帮帮忙吧

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

热点排行