我在另一个回答中读到这个:
“使用criteriaQuery查询时,在表名上每次都会创建一个新的别名,这不会反映在任何数据库的最后查询缓存中。这会导致编译生成的SQL的开销增加,执行时间更长。”——Varun Mehta。
这非常接近!但是我在另一个网站上(http://gary-rowe.com/agilestack/tag/hibernate/)读到:Hibernate 3.3及以上版本已不再如此(请阅读此处:9)Hibernate很慢,因为Criteria接口生成的SQL不一致。
我做了一些测试,尝试找出差异,但两者都会生成查询,并且不会更改表的别名。
我很困惑。如果有人知道主要原因,请帮助我们。谢谢