Hibernate flush方法

时间:2012-04-19 14:16:48

标签: java hibernate

我有以下代码插入或更新数据库中的bean。 我在HibernateUtil中有一个静态函数,它从Hibernate会话中返回一个单例实例。

hibSession = HibernateUtil.currentSession();
hibSession.saveOrUpdate(bean);
hibSession.flush(); 

这是现有的代码,我想知道是否有任何理由让程序员使用flush而不是简单地提交和flush完全正确。

3 个答案:

答案 0 :(得分:1)

flush()方法将绑定到当前持久性上下文的修改与底层数据库同步。 flush()方法不会结束正在运行的事务。

flush()方法的一个具体用法是强制执行数据库触发器或生成器逻辑(例如生成的ID)。

答案 1 :(得分:1)

flush将数据库与Hibernate重新同步。如果在表上设置了触发器,则非常有用。触发器将在flush上运行,并且不需要事务commit()。

答案 2 :(得分:0)

flush将Hibernate会话与数据库同步,commit结束数据库事务。