java - 在 hibernate 中为某些查询选择 SQL 而不是 HQL 的依据是什么?

标签 java sql hibernate hql

<分区>

我在我的项目中使用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/

相关文章:

mysql - 通过连接提高 Grails CreateCriteria 查询速度

java - 将自定义信任库添加到 java 中的 imaps

java - 同步邻居

Java:JPA 实体@OneToMany

java - Hibernate Search FieldBridge 可以为动态字段配置构面吗?

hibernate - JPA 等效于 Hibernate.initialize 的命令

java - Hibernate createNativeQuery - 获取多个实体

mysql - 如何使用 MAX() 返回具有最大值的行?

sql - 在另一个表中插入行时如何自动增加一个表中的值

java - Hibernate 的复合键