Hibernate中FlushMode.AUTO和FlushMode.ALWAYS之间的区别?

在FlushMode上经历了hibernate api规范但没有得到确切的区别。 所以请帮忙。

始终意味着在对集合运行任何查询之前,或者对数据库重新运行查询。 使用auto我假设在引擎盖下有一些“魔法”,它们知道大多数数据不会经常改变,所以你并不总是需要刷新。 它还会影响交易过程中可能发生的频率。 我说可能是因为有些消息来源说设置flushmode只是一个hibernate提示 – 但是请看这个post进行一些讨论……

http://forum.springsource.org/archive/index.php/t-14044.html

如果在触发任何查询之前刷新模式为“AUTO”,则hibernate将检查是否有任何表要更新。 如果是这样,则将执行刷新,否则为否。 如果刷新模式为“始终”,即使没有要更新的表,也会发生刷新。

检查org.hibernate.event.def.DefaultAutoFlushEventListener.onAutoFlush(AutoFlushEvent)的源代码