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

Gur*_*lki 6 java hibernate

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

Adi*_*Adi 5

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

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


The*_*ve0 2

始终意味着在对集合或此类查询运行任何查询之前,会针对数据库重新运行查询。对于 auto,我假设引擎盖下有一些“魔法”,它知道大多数数据不会经常更改,因此您不必总是刷新。它还会影响交易期间发生的频率。我说可能是因为一些消息来源说设置刷新模式只是休眠的提示 - 但请参阅此线程进行一些讨论......

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