读书人

hibernate运用save 后rollback不起作用

发布时间: 2012-11-06 14:07:00 作者: rapoo

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()后才更新)

读书人网 >J2EE开发

热点推荐