我嘗試使用Hibernate分頁我的查詢(PostgreSQL的)休眠分頁機制
我設置setFirstResult(0),setMaxResults(20)我的SQL查詢。我的代碼如下圖所示:
Session session = getSessionFactory().getCurrentSession();
session.beginTransaction();
Query query = session.createQuery("FROM Customers");
query.setFirstResult(0);
query.setMaxResults(20);
List<T> entities = query.list();
session.getTransaction().commit();
但查看SQL休眠日誌的時候,我仍然看到完整的SQL查詢:
Hibernate: select customer0_.id as id9_, customer0_.customer_name as dst2_9_, customer0_.addres as dst3_9_ from tbl_customers customer0_
爲什麼沒有限制在Hibernate中的分頁SQL日誌查詢OFFSET?
有沒有人知道關於Hibernate分頁機制?
我想Hibernate會選擇所有數據,將數據放入Resultset,然後在Resultset中分頁,對不對?
不Hibernate Hibernate不這樣做,它試圖在查詢級應用分頁。我相信這是一個方言問題,你確定你已經在Hibernate配置中設置了Postgre方言嗎? –
順便問一下,這是SQL還是HQL?您必須將HQL傳遞給'createQuery'方法。 –
在這個例子中,我正在使用:Hibernate查詢示例(HQL) – MartinJoo