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 ...
如果有人的想法不是本机查询(我现在就做),那就太好了.
我还没有检查 JPA 规范,但考虑到Hibernate 文档说
请注意,HQL 子查询只能出现在 select 或 where 子句中。
我非常怀疑您的查询是否可以转换为有效的 JPQL 查询。
您必须继续使用这个本机 SQL 查询。
JPA 2.0 JPQL 不支持 from 子句中的子选择。您可能想尝试重写您的查询,或使用本机 SQL 查询。
EclipseLink 2.4 将支持 FROM 子句中的子选择,
看,