当前位置: 首页 > 面试题库 >

Hibernate分页机制

苗冯浩
2023-03-14
问题内容

我正在尝试对查询使用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 Hibernate日志时,我仍然看到完整的SQL查询:

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?

有人知道Hibernate分页机制吗?

我猜Hibernate将选择所有数据,将数据放入Resultset,然后在Resultset中进行分页,对吗?


问题答案:

我在查询和hibernate回叫中使用。两者都按预期工作。Hibernate
Query执行的结果介于给定的First和Max大小之间。在这里,好像您传递了SQL而不是HQL进行查询。如果是的话,那应该行不通。

-在这里查看我的代码。

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

并在日志中:

select * from(从MY_TBL_NAMEquerytype0_选择(选择-所有列名称。(不想在这里共享。))其中rownum <=?



 类似资料:
  • 问题内容: 我正在尝试使用HQL实现分页。我有一个PostgreSQL数据库。 发生的情况是,Hibernate提取所有消息,并在所有消息加载后返回所需的消息。 因此,Hibernate获取210000个实体,而不是返回的30个实体(每个Messages都有2个命令)。 有没有一种方法可以将开销减少7000倍? 编辑:我尝试添加 。它没有帮助。 编辑2:生成的SQL查询是: 绝对没有LIMIT或O

  • 问题内容: 我正在尝试对查询使用Hibernate分页(PostgreSQL) 我设置,我的SQL查询。我的代码如下: 但是当查看SQL Hibernate日志时,我仍然看到完整的SQL查询: 为什么在Hibernate分页SQL日志查询中没有LIMIT OFFSET? 有人知道Hibernate分页机制吗? 我猜Hibernate将选择所有数据,将数据放入Resultset,然后在Results

  • 实现分页机制 在本实验中,需要重点了解和实现基于页表的页机制和以页为单位的物理内存管理方法和分配算法等。由于ucore OS是基于80386 CPU实现的,所以CPU在进入保护模式后,就直接使能了段机制,并使得ucore OS需要在段机制的基础上建立页机制。下面比较详细地介绍了实现分页机制的过程。

  • 我有一个使用Hibernate作为ORM的javaSpring启动应用程序。数据库是一个AzureSQL服务器。 我已经在供应商适配器配置上启用了setShowSql。 当我想查找对象时,我使用了TypeQuery的方法和并调用方法。 控制台中打印的查询不包含OFFSET和ROW FETCH子句,Hibernate似乎首先检索所有结果,然后对结果列表应用分页。 这显然会导致性能问题。 我哪里做错了

  • 问题内容: 我已经使用以下代码实现了分页: 当我手动构建SQL查询并将其提交到数据库时,我得到8个结果。但是,当我尝试上述代码时,在将ResultTransformer设置为DISTINCT_ROOT_ENTITY之前,将获得8个结果(没有区别),而在设置之后,我将获得4个结果。但是我应该得到8个结果(使用DISTINCT),因为当我手动构建SQL时没有区别时,我得到11个结果,而当我使用DIST

  • 我正在寻找用Struts2和Hibernate实现分页的想法。例如,我的表包含太多行,应该是因为我一次只能看到20行。带有和按钮。