限制 JPQL 和 HQL 中的查询
在 JPQL 或 HQL 中,可以使用setMaxResults 方法。然而,旧版本的 Hibernate 允许用户使用类似于 MySQL 的 LIMIT 子句的语法。
旧版本 Hibernate 中对 Limit 的支持
在 Hibernate 2 中,它是可以使用以下语法执行限制查询:
SELECT * FROM a_table ORDER BY a_table_column DESC LIMIT 0, 20;
此语法允许用户指定偏移量和要返回的最大结果数。
在 Hibernate 3 中删除了限制支持
但是,随着 Hibernate 3 的引入,LIMIT 子句不再存在HQL 不再支持。根据 Hibernate 论坛上的回复,此功能从未打算成为 HQL 的一部分。
使用 setMaxResults() 进行结果限制
限制数量Hibernate 3 中查询返回的结果数,用户必须使用 setMaxResults方法:
Query query = session.createQuery("FROM ATable ORDER BY aTableColumn DESC"); query.setMaxResults(20); List<ATable> resultList = query.list();
该方法以整数值作为参数,指定返回结果的最大数量。
结论
中结论是,Hibernate 3及更高版本中的JPQL和HQL不支持LIMIT子句。相反,用户必须使用 setMaxResults 方法来限制查询返回的结果数量。
以上是如何限制JPQL和HQL中的查询结果?的详细内容。更多信息请关注PHP中文网其他相关文章!