对于某些查询,在hibernate中选择SQL而不是HQL的基础是什么?

时间:2015-08-14 02:59:52

标签: java sql hibernate hql

我在我的项目中使用hibernate并且我一直使用HQL。但是,我在其他项目中看到过,createSqlQueries有时使用SQL查询,而不是HQL。我想知道,在某些情况下,选择SQL而不是HQL的决定性因素是什么。此外,如果有一些查询无法通过HQL执行,我们只需要选择SQL,请举例说明。

2 个答案:

答案 0 :(得分:0)

Hibernate中,HQL或条件查询应该可以让您执行所需的几乎任何SQL查询。但是,许多开发人员抱怨Hibernate生成的SQL语句很慢,更喜欢生成自己的SQL(本机SQL)语句。

答案 1 :(得分:0)

可能是:

- 的效果即可。有时很难配置Hibernate,因此当性能成为问题时它可以生成正确的句子。

- 使用数据库专有功能。例如,PostgreSQL中的JSON。

- 查询更容易在SQL中编写。我曾经有过在一次查询中获取报告所需的所有数据的要求。在某些情况下,此查询加入了大约十个具有复杂条件的表。映射没有针对此进行优化,因此将查询编写为本机SQL要容易得多。