Hibernate Criteria支持提供了一個setMaxResults()
方法來限制從數據庫返回的結果。休眠標準限制機制?
我無法在他們的文檔中找到任何答案 - 這是如何實現的?是否查詢整個結果集,然後僅返回請求編號?或者它真的限制了數據庫端的查詢(認爲LIMIT關鍵字和mySql一樣)。
這很重要,因爲如果查詢可能會返回許多許多結果,我真的需要知道setMaxResults()
是否仍然會查詢數據庫中的所有行(這會很糟糕)。另外 - 如果它真正限制了數據庫端的行數,它是如何實現這個跨數據庫的(因爲我不認爲每個rdbms都支持像mySql這樣的LIMIT功能)。
Intersting。那麼,爲什麼您認爲他們沒有提供限制使用HQL的方法,只要他們能夠根據setMaxResults標準轉換爲特定的方言? – john
看看http://stackoverflow.com/questions/1239723/how-do-you-do-a-limit-query-in-hql – Ritesh
這可能會提供一些清晰度:http://stackoverflow.com/questions/1239723 /怎麼辦,你-DO-A-限制查詢功能於HQL。我的理解是,它歸結爲保持HQL零件數據庫不可知,方言的特定功能,然後通過額外的方法調用,如setMaxResults – brent777