【发布时间】:2011-05-23 00:32:12
【问题描述】:
我一直在阅读一些答案,但我仍然感到困惑。为什么?因为您提到的差异与性能无关。它们与易于使用有关。(Objetc(标准)和 SQL(hql))。但我想知道“标准”是否由于某种原因比 hql 慢。
我在另一个答案中读到了这个
“HQL 和criteriaQuery 在性能方面存在差异,每次使用criteriaQuery 触发查询时,它都会为表名创建一个新别名,该别名不会反映在任何数据库的最后查询缓存中。这会导致编译生成的 SQL 的开销,需要更多时间来执行。”作者:瓦伦·梅塔。
这是非常接近但是!我在另一个网站上阅读(http://gary-rowe.com/agilestack/tag/hibernate/)Hibernate 3.3 及更高版本不再是这种情况(请阅读:9)Hibernate 很慢,因为由Criteria接口不一致)
我已经做了一些测试,试图找出差异,但两者都生成 qry,并且不会更改表的别名。
我很困惑。如果有人知道主要原因,请帮助我们。谢谢
【问题讨论】:
标签: performance hibernate hql hibernate-criteria