(JPQL) - 查询获取最多记录数的用户

时间:2013-01-27 18:07:32

标签: java mysql jpa jpql

请原谅我再次讨论这个问题,但我需要有一个JPA查询:

select username, count(*)
from Records
group by username
order by count(*) desc
limit 1

我想到了如下:

select r.username,count(*) from Records r order by r.username desc

然后致电

getResultList().get(0)

但我只能写:

select r from Records r order by r.username desc

在这种情况下,我不知道如何得到我需要的东西。 有没有人有任何想法?

1 个答案:

答案 0 :(得分:2)

SQL查询具有分组依据和按顺序排序。 JPA查询没有任何group by和用户名order。所以我不知道他们怎么能回报同样的事情。

等效的JPQL查询是

select r.username, count(r.id)
from Record r
group by r.username
order by count(r.id) desc

如果在Query对象上调用setMaxResults(1),则会将limit子句添加到生成的SQL查询中,使其完全等效。

相关问题