我一直在读一些答案,但我仍然感到困惑。为什么?因为你提到的差异与表现无关。它们与易于使用有关。(Objecetc (条件)和 SQL (hql))。但是我想知道是否“标准”由于某种原因比 hql 慢。
我在另一个答案里读到的
“ HQL 和 CritiaQuery 在性能方面存在差异,每次使用 CritiaQuery 触发查询时,它都会为表名创建一个新别名,这个别名不会反映在任何数据库的最后一次查询缓存中。这会导致编译生成的 SQL 的开销,从而花费更多的时间来执行。”作者: Varun Mehta。
这是非常接近,但是!我在另一个网站上看到( http://gary-rowe.com/agilestack/tag/Hibernate/) Hibernate 3.3及以上版本的情况已经不同了(请阅读: 9) Hibernate 速度很慢,因为 Criteria 界面生成的 SQL 不一致)
我已经做了一些测试,试图找出差异,但都生成 qry 的,它不会改变别名的表。
我很困惑。如果有人知道主要原因,请你帮助我们。谢谢