我为 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 ...
如果有人有 native 查询以外的想法(我现在会这样做),那就太好了。
最佳答案
我还没有检查过 JPA 规范,但鉴于 Hibernate documentation说
Note that HQL subqueries can occur only in the select or where clauses.
我非常怀疑您的查询是否可以转换为有效的 JPQL 查询。
您将不得不继续使用这个 native SQL 查询。
关于select - JPA - MAX of COUNT 或 SELECT FROM SELECT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10699423/