HQL 限制查詢:用Query.setMaxResults() 取代過時的方法
在Hibernate 3 中,用戶尋求模擬SQL 限制使用HQL的子句。以前,這可以在 Hibernate 2 中實現,但該功能似乎缺失。
HQL 的限制子句:歷史文物
Hibernate 論壇上的存檔討論揭示了limit 從來都不是HQL 中受支援的子句,儘管它與Hibernate 2 明顯相容。這種令人困惑的行為歸因於一個怪癖在 Hibernate 2 的 HQL 解析器中,它允許將未經批准的本機 SQL 嵌入到查詢中。
Query.setMaxResults():建議的解決方案
隨著 Hibernate 3 的引入更嚴格的 AST HQL 解析器,這個漏洞已經被堵住了。因此,建議使用者使用 Query.setMaxResults() 來限制查詢結果。
利用 Query.setMaxResults() 的功能來有效處理 HQL 中的結果截斷,確保與建議實務和最佳程式碼可靠性。
以上是如何用 Hibernate 3 取代 HQL 中 MySQL 的 LIMIT 子句?的詳細內容。更多資訊請關注PHP中文網其他相關文章!