【发布时间】:2016-08-22 22:12:50
【问题描述】:
请有人通过一个简单的示例查询和描述查询结果的表来帮助我理解 Hibernate 中的“使用连接进行急切获取”的概念。我已经搜索了网络,但无法通过一个很好的例子得到解释。请帮助和指导我。
【问题讨论】:
标签: hibernate join eager fetching-strategy
请有人通过一个简单的示例查询和描述查询结果的表来帮助我理解 Hibernate 中的“使用连接进行急切获取”的概念。我已经搜索了网络,但无法通过一个很好的例子得到解释。请帮助和指导我。
【问题讨论】:
标签: hibernate join eager fetching-strategy
Eager fetching 在对象的初始提取中立即带回连接的表数据,而不是等到应用程序明确请求它。
从 SQL 的角度来看,假设您总是想使用急切获取的数据,它可能会更有效。一般来说,最好等到应用程序需要数据,此时 Hibernate 会进行新的查询来获取数据。
这实际上与延迟初始化应用程序构造的想法相同 - 不要创建连接/套接字/打开资源/在您真正需要它之前,如果您需要它。
如果这是一个父子关系,其中子对象有 1000s/10000s/1000000s 子对象,则 Eager fetching 也可能是非常不可扩展的。这可能是大多数休眠性能问题的根源,解决方案是手动获取子节点 - 不方便,但您的应用程序会很高兴。
[抱歉,手头没有示例,但我想我可以很好地解释它。]
【讨论】: