JPQL/HQL 限制查詢
在Hibernate 3 中,您可能會遇到需要執行限制查詢,類似於MySQL 的LIMITSQL 子句。雖然可以使用 setMaxResults() 方法,但您需要尋求 HQL 替代方案。
歷史功能
舊版的 Hibernate/HQL 允許使用 LIMIT 子句在 HQL 查詢中。但該功能並未獲得官方支持,在後續版本中已被淘汰。
當前解決方案
JPQL 或 HQL 中限制查詢的建議方法是使用Query.setMaxResults() 方法。此方法設定查詢將傳回的最大結果數,並有效限制檢索的記錄數。
考慮使用 setMaxResults() 的以下 HQL 查詢:
Query query = session.createQuery("from ATable order by aTableColumn desc"); query.setMaxResults(20); List results = query.list();
此查詢最多從 ATable 擷取 20 行,並依 aTableColumn 欄位降序排列。
總而言之,在 JPQL 或 HQL 中使用 LIMIT 子句從未得到正式支持,並且已在較新版本中刪除。建議的替代方案是利用 Query.setMaxResults() 方法來限制查詢傳回的結果數量。
以上是如何限制JPQL/HQL中的查詢結果?的詳細內容。更多資訊請關注PHP中文網其他相關文章!