JPA - MAX的COUNT或SELECT FROM SELECT

Bob*_*Bob 6 select jpa count subquery max

我为MySQL编写了以下查询:

SELECT subquery.t1_column1, 
    subquery.t2_id, 
    MAX(subquery.val)
FROM (
    SELECT t1.column1 as t1_column1, 
        t1.id_t2 AS t2_id,
        count(1) AS val
    FROM table1 t1
    INNER JOIN table2 t2
    ON t2.id = t1.id_t2
    GROUP BY t1.id_t2
) subquery
GROUP BY t1_column1
Run Code Online (Sandbox Code Playgroud)

我想把它翻译成JPA(JPQL或标准查询).

我不知道如何制作这个max(count)的东西,JPA似乎不喜欢SELECT FROM SELECT ...

如果有人的想法不是本机查询(我现在就做),那就太好了.

JB *_*zet 5

我还没有检查 JPA 规范,但考虑到Hibernate 文档

请注意,HQL 子查询只能出现在 select 或 where 子句中。

我非常怀疑您的查询是否可以转换为有效的 JPQL 查询。

您必须继续使用这个本机 SQL 查询。


Jam*_*mes 5

JPA 2.0 JPQL 不支持 from 子句中的子选择。您可能想尝试重写您的查询,或使用本机 SQL 查询。

EclipseLink 2.4 将支持 FROM 子句中的子选择,

看,

http://wiki.eclipse.org/EclipseLink/UserGuide/JPA/Basic_JPA_Development/Querying/JPQL#Sub-selects_in_FROM_clause