我在我的项目中使用hibernate并且我一直使用HQL。但是,我在其他项目中看到过,createSqlQueries有时使用SQL查询,而不是HQL。我想知道,在某些情况下,选择SQL而不是HQL的决定性因素是什么。此外,如果有一些查询无法通过HQL执行,我们只需要选择SQL,请举例说明。
答案 0 :(得分:0)
在Hibernate
中,HQL
或条件查询应该可以让您执行所需的几乎任何SQL
查询。但是,许多开发人员抱怨Hibernate生成的SQL
语句很慢,更喜欢生成自己的SQL
(本机SQL)语句。
答案 1 :(得分:0)
可能是:
- 的效果即可。有时很难配置Hibernate,因此当性能成为问题时它可以生成正确的句子。
- 使用数据库专有功能。例如,PostgreSQL中的JSON。
- 查询更容易在SQL中编写。我曾经有过在一次查询中获取报告所需的所有数据的要求。在某些情况下,此查询加入了大约十个具有复杂条件的表。映射没有针对此进行优化,因此将查询编写为本机SQL要容易得多。