这个问题在这里已经有了答案:
10年前关闭。
Possible Duplicate:
How do you do a limit query in HQL
我是 HQL 的新手。我有以下工作 HQL 查询:
from Order as o where o.account.profile.userId='abc' order by o.orderID desc
此查询返回用户下的订单列表 abc .用户可以在数据库中放置 0 到 5000 多个订单。但我只想显示 前 5 记录(订单)。我正在使用 java List 的 sublist 函数。
我可以使用 HQL 查询直接获取前 5 条记录吗?编写此查询的更有效方法是什么?
最佳答案
您可以通过调用 setFirstResult()
来限制查询返回的结果。和 setMaxResults()
在运行查询之前对查询对象执行函数。像这样:
Query query = session.createQuery("from Order as o where o.account.profile.userId='abc' order by o.orderID desc");
query.setFirstResult(0);
query.setMaxResults(5);
List result = query.list();
这取决于您使用的 DBMS 是否会直接在 DBMS 中处理。
关于hibernate - 想用 HQL 只获取 5 条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6042004/