【问题标题】:Does querydsl suffers of the same limitations as JPA Criteria API?querydsl 是否受到与 JPA Criteria API 相同的限制?
【发布时间】:2014-06-30 19:27:01
【问题描述】:

JPA Criteria API 有一些重要的限制。例如:

  • 不支持右外连接
  • 仅当实体中的关系在同一方向时才支持左外连接
  • 在 SELECT 和 FROM 子句中都不支持子查询

QueryDsl querydsl-jpa 是否受到同样的限制?

QueryDsl querydsl-sql 怎么样?

编辑: 根据 QueryDsl 文档(没有具体经验),QueryDsl 提供了两个查询类JPAQueryJPASQLQuery。第一个似乎与 JPA Criteria API 具有相同的限制,但 JPASQLQuery 似乎没有。如果我有时间,我会更深入地研究代码并尝试一下。但是,如果有人已经对此有所了解,那么欢迎您!

【问题讨论】:

  • Criteria API 让我每次看到都想哭。我每次都会使用 QueryDSL,不管它可能有任何限制(我不是说有任何限制)。
  • 有趣。请随意添加论证!

标签: java sql jpa querydsl or-mapper


【解决方案1】:

你的假设是正确的。 Querydsl JPA 有同样的限制,上面提到的三个限制也是 JPA 的查询语言 JPQL 的限制。

JPAQuery 用于 JPQL 查询,JPASQLQuery 用于 JPA 原生 (SQL) 查询。

【讨论】:

  • 谢谢蒂莫·韦斯特坎珀!澄清一下:JPAQuery 与 JPQL 有相同的限制,但JPASQLQuery 没有。那是对的吗? (我对“Querydsl JPA”这个名称感到困惑:它是只代表JPAQuery,还是同时代表JPAQueryJPASQLQuery
  • 你是对的。 Querydsl JPA 是 JPA API 查询、JPQL (JPAQuery) 和 SQL (JPASQLQuery) 的 Querydsl 集成。
猜你喜欢
  • 2019-04-18
  • 2020-12-04
  • 1970-01-01
  • 1970-01-01
  • 2016-03-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-10
相关资源
最近更新 更多