QueryDSL:在 JPAQuery.from() 中使用 JPASubQuery

Posted

技术标签:

【中文标题】QueryDSL:在 JPAQuery.from() 中使用 JPASubQuery【英文标题】:QueryDSL: Use a JPASubQuery in JPAQuery.from() 【发布时间】:2015-08-07 15:00:44 【问题描述】:

我有一个类似的 SQL:

查询 1:

  SELECT
    t.name,
    sum(t.value)
  FROM
    myTable t
  WHERE 
    -- conditions...
  GROUP BY 
    t.name
  HAVING sum(t.value) >= 100

我有:

查询 2:

  select count(*) from (
   -- QUERY1
) as countQuery

我正在尝试在 QueryDSL 上执行此操作。 我已经将查询 1 作为 JPAQuery。 现在需要将其用作子查询,所以我正在尝试执行以下操作:

JPASubQuery subQuery = new JPASubQuery(query1.getMetadata());
new JPAQuery().from(subquery).count();

但不能在 FROM 子句中添加子查询。

这将是一个不错的功能。

【问题讨论】:

【参考方案1】:

好的,由于 JPA 的限制,这是不可能的:

https://github.com/querydsl/querydsl/issues/1471

【讨论】:

以上是关于QueryDSL:在 JPAQuery.from() 中使用 JPASubQuery的主要内容,如果未能解决你的问题,请参考以下文章

如何在 M1 Mac 上运行 querydsl 项目测试?

Spring 数据规范或 QueryDSL

如何使用 QueryDSL 在查询中使用 SAMPLE 关键字

使用 Redshift 设置的 QueryDSL

ElasticSearch:QueryDSL

QueryDSL、spring-boot 和 Gradle