hibernate - 想用 HQL 只获取 5 条记录

标签 hibernate spring hql

这个问题在这里已经有了答案:




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/

相关文章:

java - hibernate 多对多关联不更新连接表

java - 如何将登录用户的 session 数据传输到另一个 Java 应用程序

java - 从类路径资源 [applicationContext.xml] 解析 XML 文档时发生意外异常;

sql - Hive - 根据收集时间提取第一条和最后一条记录的数据

java - Hibernate - 如何持久化 HashMap

hibernate - 如果父 pom 具有 Java EE BOM 依赖项,是否应该在子 pom 中显式提及所有依赖项?

java - Hibernate中的@Formula计算日期时间

java - Spring Session JDBCTokenRepository 覆盖默认表

hadoop - 为什么 hive 不能识别在选择部分命名的别名?

java - 无法使用请求结果类型为具有多个返回的查询创建类型化查询