【发布时间】:2013-12-22 17:43:37
【问题描述】:
执行两个简单的 SQL 查询通常比执行一个功能相同的复杂 SQL 查询要好。
Hibernate 是否曾尝试将这种优化用于 HQL(或 Criterias 或其他),还是总是只生成一个 SQL?
你可能会问,我为什么不写两个 HQL 查询,就像在 SQL 中一样。例如:
from User
简单的 HQL 查询,但由于所有预先加载的关联,它可能会生成非常复杂的 SQL。
理论上,Hibernate 可以只执行基本查询(SELECT * FROM user),收集一对一和一对多引用(id),然后进行第二次查询以收集这些 id 的行等。这可能是更快,尤其是当 User 中的参考 ID 基数较低时(它会产生较小的网络流量)。
问题是,Hibernate(或者可能是其他一些 JPA 实现?)是否可以使用这种优化?
谢谢。
【问题讨论】:
标签: hibernate jpa hql criteria-api