【发布时间】:2013-11-13 10:36:51
【问题描述】:
在这个项目中,持久层使用了 Hibernate,但模型-数据库映射主要配置了 JPA 注释。
Hibernate 升级变得困难,因为新的 Hibernate 版本在 SQL 中生成了不必要的连接,而 HQL 没有改变。
所以我们正在寻找其他选项,而不是 Hibernate 的 HQL 解析器。
QueryDSL 是否可以构建 HQL 样式的查询并让 QueryDSL 生成 SQL?
【问题讨论】:
在这个项目中,持久层使用了 Hibernate,但模型-数据库映射主要配置了 JPA 注释。
Hibernate 升级变得困难,因为新的 Hibernate 版本在 SQL 中生成了不必要的连接,而 HQL 没有改变。
所以我们正在寻找其他选项,而不是 Hibernate 的 HQL 解析器。
QueryDSL 是否可以构建 HQL 样式的查询并让 QueryDSL 生成 SQL?
【问题讨论】:
Querydsl JPA 不是 JPA 实现,因此如果将 Querydsl 与 JPA 一起使用,则无法直接控制生成的 SQL。如果您想使用 Querydsl 更好地控制所使用的 SQL,请改用 Querydsl SQL。
Hibernate 中不必要的连接通常是由 HQL 级别的隐式连接(属性遍历)引起的。这也可能适用于您的情况。
【讨论】: