hibernate+struts2分页查询的问题,永远都是第一页,为什么第一条sql语句对,第二条变样了

首先sql语句第1条selecttop3people0_.ID_asID1_0_,people0_.unameasuname0_,people0_.passwordasp... 首先sql语句第1条select top 3 people0_.ID_ as ID1_0_, people0_.uname as uname0_, people0_.password as password0_, people0_.repassword as repassword0_ from People people0_
第2条select top 6 people0_.ID_ as ID1_2_, people0_.uname as uname2_, people0_.password as password2_, people0_.repassword as repassword2_ from People people0_为什么第2条sql语句是查询6条,而不是3条呢
也就是说为什么我的pageSize增加了一倍,我是要排除(pageNow-1)*pageSize条,查询pageSize条,求解啊
private pageNow=1;
private pageSize=3;(set和get方法默认)
public List find(int pageNow,int pageSize){
Configuration c=new Configuration();
c.configure();
SessionFactory f=c.buildSessionFactory();
Session session=f.getCurrentSession();
@SuppressWarnings("unused")
Transaction r=session.beginTransaction();
Query query= session.createQuery("from People");
query.setFirstResult(pageSize*(pageNow-1));
query.setMaxResults(pageSize);
List list=query.list();
session.close();
return list;
展开
 我来答
百度网友a175029de
2011-09-25 · TA获得超过287个赞
知道小有建树答主
回答量:211
采纳率:0%
帮助的人:243万
展开全部
因为sql server 没有直接的分页功能,hibernate 采用了top的方式进行间接的分页方式,第一页top pageSize,第二页 top pageSize*2,但前pageSize条记录被丢弃了,第二页的数据是从pageSize+1开始取的.

同理,第三页的数据查询了pageSize*3条数据,前pageSize*2条记录丢弃,只要pageSize*2+1到pageSize*3之间的数据...
追问
那我的方法里查询的条件出错了吗,我看网上都是这样写的,书上也是啊,求解啊,那怎么可以实现永远都只查询3条啊,我不要查询6条啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式