【发布时间】:2012-02-22 14:27:31
【问题描述】:
对于大多数实体类,我的 Hibernate 应用程序通常会加载类的 all 实体。是否可以告诉 Hibernate 某个类的所有实体都已加载,因此它不会再进行任何数据库查询来填充该类的一对多集合?
【问题讨论】:
标签: hibernate optimization collections load one-to-many
对于大多数实体类,我的 Hibernate 应用程序通常会加载类的 all 实体。是否可以告诉 Hibernate 某个类的所有实体都已加载,因此它不会再进行任何数据库查询来填充该类的一对多集合?
【问题讨论】:
标签: hibernate optimization collections load one-to-many
AFAIK,除非您将 OneToMany 关联和关联目标存储在二级缓存中,否则这是不可能的。
如果这些实体可以被另一个应用程序修改,或者应用程序本身修改这些实体并跨多个 JVM 集群,这当然会产生影响。
否则,对此类实体使用二级缓存是一个非常好的解决方案。然后,您甚至可以避免在每个会话中加载所有实体,因为它们已经(懒惰地)预加载到缓存中。
【讨论】: