我有以下代码插入或更新数据库中的bean。
我在HibernateUtil
中有一个静态函数,它从Hibernate会话中返回一个单例实例。
hibSession = HibernateUtil.currentSession();
hibSession.saveOrUpdate(bean);
hibSession.flush();
这是现有的代码,我想知道是否有任何理由让程序员使用flush而不是简单地提交和flush完全正确。
答案 0 :(得分:1)
flush()方法将绑定到当前持久性上下文的修改与底层数据库同步。 flush()方法不会结束正在运行的事务。
flush()方法的一个具体用法是强制执行数据库触发器或生成器逻辑(例如生成的ID)。
答案 1 :(得分:1)
flush将数据库与Hibernate重新同步。如果在表上设置了触发器,则非常有用。触发器将在flush上运行,并且不需要事务commit()。
答案 2 :(得分:0)
flush
将Hibernate会话与数据库同步,commit
结束数据库事务。