我为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
我想把它翻译成JPA(JPQL或标准查询)。
我不知道如何制作这个max(count)的东西,JPA似乎不喜欢SELECT FROM SELECT ......
如果有人的想法不是本机查询(我现在就做),那就太好了。
答案 0 :(得分:4)
我没有检查JPA规范,但考虑到Hibernate documentation说
请注意,HQL子查询只能在select或where中出现 条款。
我非常怀疑您的查询可以在有效的JPQL查询中进行转换。
您必须继续使用此本机SQL查询。
答案 1 :(得分:2)
JPA 2.0 JPQL不支持from子句中的子选择。您可能希望尝试重写查询,或使用本机SQL查询。
EclipseLink 2.4将支持FROM子句中的子选择,
见,