Hibernate 分页机制 [英] Hibernate pagination mechanism

查看:16
本文介绍了Hibernate 分页机制的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试将 Hibernate 分页用于我的查询 (PostgreSQL)

I am trying to use Hibernate pagination for my query (PostgreSQL )

我为我的 SQL 查询设置了 setFirstResult(0)setMaxResults(20).我的代码如下:

I set setFirstResult(0), setMaxResults(20) for my SQL query. My code is like below:

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 Hibernate 日志时,我仍然看到完整的 SQL 查询:

but when viewing the SQL Hibernate log, I still see the full SQL query:

Hibernate: select customer0_.id as id9_, customer0_.customer_name as dst2_9_, customer0_.addres as dst3_9_ from tbl_customers customer0_  

为什么查询Hibernate分页SQL日志没有LIMIT OFFSET?

Why there is no LIMIT OFFSET in query of Hibernate pagination SQL log?

有谁知道Hibernate的分页机制?

Does anyone know about Hibernate pagination mechanism?

我猜Hibernate会选择所有数据,把数据放入Resultset,然后在Resultset中分页,对吧?

I guess that Hibernate will select all data, put data into Resultset, and then paging in Resultset, right?

推荐答案

我在查询和休眠回调中使用.两者都按预期工作.Hibernate Query 执行给定的 First 和 Max size 之间的结果.这里似乎您通过 SQL 而不是 HQL 来查询.如果是,它不应该工作.

I am using in query and in hibernate call back. both are working as expected. Hibernate Query executes for results in between First and Max size given. Here Seems like you passed SQL not HQL to query. if yes it shouldn't work.

-- 在此处查看我的代码.

-- See my code here.

        Query query = this.getSession().createQuery("FROM QueryType");
        query.setFirstResult(0);
        query.setMaxResults(20);
        List toDelete = query.list();

并在日志中:

选择*从( 选择-- 所有列名.(不想在这里分享.)从MY_TBL_NAME querytype0_ )在哪里行数 <= ?

select * from ( select -- ALL column names. (dont want to share here.) from MY_TBL_NAME querytype0_ ) where rownum <= ?

这篇关于Hibernate 分页机制的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆