代码之家  ›  专栏  ›  技术社区  ›  GuruKulki

flushmode.auto和flushmode.always in hibernate之间的区别?

  •  6
  • GuruKulki  · 技术社区  · 15 年前

    已经通过了flushmode上的hibernate api规范,但没有得到确切的区别。所以请帮忙。

    2 回复  |  直到 15 年前
        1
  •  2
  •   TheSteve0    15 年前

    始终意味着在对集合或此类集合运行任何查询之前,将针对数据库重新运行查询。有了auto,我假设有一些“魔法”在幕后,它知道大多数数据不会经常更改,所以你不必总是刷新。它还影响事务期间可能发生的频率。我这么说可能是因为一些消息来源说设置flushmode只是对hibernate的一个提示-但是请看这个线程来进行一些讨论…

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

        2
  •  5
  •   Adisesha    15 年前

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

    检查的源,org.hibernate.event.def.defaultAutoflushEventListener.onAutoflush(AutoflushEvent)