如果我们使用“join”作为获取策略,将会触发一次单独的连接查询(通过一个联接查询结合父项和子项),默认行为相当于lazy="false"。这意味着所有子记录将会一次性获取到父级中。但是,如果我们将lazy="true"标记,行为将会如何?由于联接查询是单一的,将会惰性获取什么?
FetchMode Join覆盖了懒加载属性。它将被简单忽略。 如果您对Fetchmodes需要详细解释感兴趣,请查看此链接。该文章描述了Hibernate fetchmodes以及它们产生的输出。
在映射中使用lazy="true",可以启用单个标量值类型属性的延迟加载(这是一种有点奇特的情况)。需要编译持久类的字节码插装以注入拦截代码。可以在HQL中使用FETCH ALL PROPERTIES进行覆盖。
来源:https://community.jboss.org/wiki/AShortPrimerOnFetchingStrategies。希望能帮到您。