HQL - 查找属性x最高的实体

3

HQL查询能实现这个功能吗?

“获取creationTimestamp属性是所有UserEntities中最新的UserEntity”。

本质上,这是一个查询,返回我们程序中“最新的用户”,其中每个UserEntity都有一个映射到数据库中的时间戳列的字段。


最好不要使用 setMaxResults。 - benstpierre
你想要返回多个用户吗? - dotjoe
3个回答

7
查询最高creationTimestamp的代码如下:
from UserEntity where creationTimestamp = max(creationTimestamp)

如果您只想返回具有相同(最高)属性值的其他结果并忽略它们,可以使用query.uniqueResult()。请参见第14章 HQL:Hibernate查询语言获取更多信息。

+1 指出不需要使用 select,非常专业。但我想知道,在某些情况下,你的查询理论上是否可能返回多个用户? - Mark Byers
1
正确!它可以返回多个,但问题是要找到一个属性最高的地方……当多个项目在该属性上具有最高值时,您希望得到哪个项目? - stefanglase

4

按照最新顺序列出用户的HQL查询语句如下:

from UserEntities
order by creationTimestamp desc

使用setMaxResults来将结果集限制为仅一个用户。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接