关于hibernate分页查询的问题

问题描述

public List<News> getPageData(int startIndex, int pageSize) {Query q = HibernateSessionFactory.getSession().createQuery("from News n order by n.postTime desc");q.setFirstResult(startIndex);q.setMaxResults(pageSize);List<News> news = q.list();return news;}我通过这个方法查询分页,然后在action中将结果设入request.attribute();但是我在新闻列表中删除一条记录,然后刷新页面,还是显示原来的列表。这是怎么回事呢,是缓存问题吗,(s2sh) 问题补充:public List getListForPage(final int offset, final int length) {List list = getHibernateTemplate().executeFind(new HibernateCallback() {public Object doInHibernate(Session session)throws HibernateException, SQLException {Query query = session.createQuery("from News n order by n.postTime desc");query.setFirstResult(offset);query.setMaxResults(length);List<News> news = query.list();return news;}});return list;}用这个就可以了,不过为什么呢

解决方案

删除之后需要redirect到getPageData,并且你上面的写法是有问题的,session没有关闭,补充问题写法是没问题的。
解决方案二:
应该是没有重新加载一遍.你是不是按F5刷新的? 试下按Ctrl + F5刷新.
解决方案三:
你删除之后应该重新加载一下分页数据,这样就能保证每次都是最新的数据了。
解决方案四:
查一下数据库里这条记录有没有删除先

时间: 2025-01-29 22:42:41

关于hibernate分页查询的问题的相关文章

Hibernate 分页 查询

 昨天的作业  分页: 主要的代码块:(明天实现分页的封装) 1 package com.cy.beans; 2 3 import java.util.List; 4 5 /** 6 * 定义一个分页对象 7 * @author acer 8 * 9 */ 10 public class Pager { 11 12 private int page;//当前页码 13 private int pageTotal;//总页码 14 private int rowsTotal;//总条数 15 pr

Hibernate实现分页查询的简要分析

本文向大家介绍Hibernate查询分页,可能好多人还不了解Hibernate查询分页,没有关系,下面有一个例子,从第2万条开始取出100条记录看完本文你肯定有不少收获,希望本文能教会你更多东西. Java代码 Query q = session.createQuery("from Cat as c");; q.setFirstResult(20000);; q.setMaxResults(100);; List l = q.list();; 那么Hibernate底层如何实现分页的呢

实现在Hibernate中的分页查询原理解读

Hibernate 可以实现分页查询,例如: 从第2万条开始取出100条记录 Query q = session.createQuery("from Cat as c"); q.setFirstResult(20000); q.setMaxResults(100); List l = q.list(); 那么Hibernate底层如何实现分页的呢?实际上Hibernate的查询定义在net.sf.hibernate.loader.Loader这个类里面,仔细阅读该类代码,就可以把问题彻

hibernate+struts2分页查询的问题

问题描述 struts.xml<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEstrutsPUBLIC"-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.0//EN""http://struts.apache.org/dtds/struts-2.0.dtd"><struts><packag

hibernate分页算法-hibernate分页时查询出了15条数据,一页显示10条,其余5条不显示

问题描述 hibernate分页时查询出了15条数据,一页显示10条,其余5条不显示 query.setFirstResult((pageNo-1)*10); query.setMaxResults(10); 在使用这个分页算法的时候我用模糊查询一共查处了15条数据,第一页显示了10,但为什么其余5条显示不出来 if("down".equals(flag)) { pageNo=(Integer)session.get("pageNo"); System.out.pr

Hibernate查询,返回new对象(注意这个新定义的类要有构造函数),使用sql带条件分页查询并且把结果显示到一个对象的集里面的解决方案

 IIndexDao package com.ucap.netcheck.dao; import com.ucap.netcheck.combination.beans.IndexCombinationBean;import com.ucap.netcheck.common.Page;import com.ucap.netcheck.common.dao.GenericDao;import com.ucap.netcheck.entity.Site; /**    * @Title: IIn

小结Hibernate的查询方式

1. get() and load() session.get(Clazz, id); session.load(Clazz, id); 说明: load()与get()的区别 请注意如果没有匹配的数据库记录,load()方法可能抛出无法恢复的异常(unrecoverable exception). 如果类的映射使用了代理(proxy),load()方法会返回一个未初始化的代理,直到你调用该代理的某方法时才会去访问数据库. 若你希望在某对象中创建一个指向另一个对象的关联,又不想在从数据库中装载该

javaweb-关于hibernate条件查询问题。

问题描述 关于hibernate条件查询问题. 查,一张表 条件1:按时间降序 条件2:查询某一段的数据,如A,B,C,D,E (要求查C到D 这段数据) 条件3:查询的过程中,还会有新数据不断的插入 之前我想过直接上分页,可是分页 的话出现条件3的情况就不符合需求. 因为,假如现在有A,B,C,D,E 四条数据已经按时间降序了 现在第一页,每页显示2条吧,第一页出现就是A,B:第二页出现就是C,D 这时候如果突然插入一条新数据 "N" ,那这时候就出问题了,因为按照 时间降序,数据为

第十一章 Hibernate的查询 Query by Criteria(QBC)

QBC(QueryByCriteria)查询方式是Hibernate提供的"更加面向对象"的一种检索方式.QBC在条件查询上比HQL查询更为灵活,而且支持运行时动态生成查询语句.  1.在Hibernate应用中使用QBC查询通常经过3个步骤 (1)使用Session实例的createCriteria()方法创建Criteria对象  (2)使用工具类Restrictions的相关方法为Criteria对象设置查询对象  (3)使用Criteria对象的list()方法执行查询,返回查