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

休眠分页机制

拓拔富
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
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_NAME querytype0_选择(选择-所有列名称。(不想在这里共享。)),其中rownum <=?



 类似资料:
  • 问题内容: 显示标签提供给定对象的分页功能。Hibernates提供了仅提取每页所需记录的选项。在我的项目中,我们同时使用了这两个概念。 显示广告代码:我需要根据过滤条件提取所有记录并将其存储在会话中。然后这个displaytag将负责所有分页和排序。因此Httpsession拥有很多数据。 hibernate:它仅从数据库中获取请求的对象数,无需为每个请求打开会话。 最好的做事方法是什么?或者如

  • 问题内容: 如果我能以某种方式将这两个框架结合在一起,那就太酷了。 单击Primefaces数据表上的下一个或上一个按钮将触发查询,从而使用JPA限制查询结果。 同样,也许通过某种机制,primefaces组件也可以从另一个JPA选择计数查询中获取总页数。 有没有关于如何将它们投入工作的示例? 请分享您的经验。 谢谢 ! 问题答案: 您可以使用LazyDataModel。在此示例中,我将使用Net

  • 问题内容: 我将GWT用于UI,将Hibernate / Spring用于业务层。以下GWT小部件用于显示记录。(http://collectionofdemos.appspot.com/demo/com.google.gwt.gen2.demo.scrolltable.PagingScrollTableDemo /PagingScrollTableDemo.html )。我认为排序是在客户端完成

  • 问题内容: 细节 来自应用程序的HQL查询: 查询返回300万条记录,而对于分页,我们仅设置了其中的50条记录,分页页面的运行速度非常慢,因为每次刷新时,我们都调用查询来获取300万条记录,而其中只有50条记录。 我的主要问题是 HQL是始终运行并命中数据库还是运行命中会话或内存以查找数据,如果它每次都运行时命中数据库并获取结果集,那么从性能的角度来看,这是非常合适的,什么是改进的最佳解决方案它?

  • 问题内容: 我想按数据库中的条件计数记录数。 我尝试使用下一个查询 但是没有方法可以执行此操作并获得结果。 我知道,我可以使用 所以问题是,查询是否具有更高的性能?如果,那么如何执行查询呢? 问题答案: 您可以通过调用来执行第一个查询,例如。 如果要将计数分配给变量,则需要将其转换为适当的类型(它可以取决于DB,但很可能是Long)。第二个查询效率很低,因为Hibernate需要从数据库中检索整个

  • 问题内容: 我使用 hibernate* / JPA 实现 服务器端数据分页 ,底层数据库是 MS SQL Server 2008。 * SQL生成如下: (主要工作在于创建适当的过滤器/排序,但这与此处无关) 我正在观察的是以下SQL: … 等等。 显然,如果基础结果集太大,这(a)会遇到严重问题,而(b)与分页根本没有太大关系:-( 有人遇到过同样的问题吗? 更新 :似乎NHibernate(