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