<分区>
我在我的项目中使用hibernate,我一直使用HQL。但是,我在其他项目中看到,createSqlQueries 有时会使用 SQL 查询,而不是 HQL。我想知道,在某些情况下,选择 SQL 而不是 HQL 的决定因素是什么。另外,如果有一些HQL无法执行的查询,我们需要只选择SQL,请举出例子。
<分区>
我在我的项目中使用hibernate,我一直使用HQL。但是,我在其他项目中看到,createSqlQueries 有时会使用 SQL 查询,而不是 HQL。我想知道,在某些情况下,选择 SQL 而不是 HQL 的决定因素是什么。另外,如果有一些HQL无法执行的查询,我们需要只选择SQL,请举出例子。
最佳答案
可能是:
-性能。有时很难配置 Hibernate,因此当性能有问题时它可以生成正确的句子。
-使用数据库专有功能。例如,PostgreSQL 中的 JSON。
-查询更容易用 SQL 编写。我曾经需要在一个查询中获取一份报告所需的所有数据。该查询在某些情况下连接了大约十个条件复杂的表。映射并未为此进行优化,因此将查询编写为 native SQL 要容易得多。
关于java - 在 hibernate 中为某些查询选择 SQL 而不是 HQL 的依据是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32001614/