hibernate分页方法query.setFirstResult();setMaxResults();

用上面两个方法进行查询如:query.setFirstResult(1500);query.setMaxResults(15);List<T>findTs=query.l... 用上面两个方法进行查询如:
query.setFirstResult(1500);query.setMaxResults(15);
List<T> findTs = query.list();
发现打印出来的sql语句是“select top 1515 order0_.OrderID as OrderID42...”
是把前1515条全部查出来再截取最后的15条返回吗?那这样一样效率很低啊,和前台分页也没什么差别,这是怎样一种机制,有没有什么高效率的分页查询方法?
展开
 我来答
HYTC_ZYue
2013-12-24 · TA获得超过519个赞
知道小有建树答主
回答量:516
采纳率:0%
帮助的人:347万
展开全部
query.setFirstResult(1500);query.setMaxResults(15); 是基于数据库sql语句的分页方式,对于hibernate分页我只用过两种
1.query.setFirstResult();query.setMaxResults(); 基于数据库sql
2.query.scroll(); 基于内存分页
第一种方式,hibernate会根据不同数据库方言 翻译成对于的分页语句,执行效率比较高
第二种是 现将所需要分页数据的最大值 取到内存中,这样好处是 选择其他分页数据非常快,当软确定就是 会out of memory

你参考一下吧 我的不一定正确
追问
我以前也觉得第一种效率较高,像上面说的:
query.setFirstResult(1500);query.setMaxResults(15);
但发现翻译的sql语句是“select top 1515 order0_.OrderID as OrderID...”
是查询前1515条,而我只是想要1500-1515之间的这15条,觉得这样没有起到数据库分页提高效率的作用
加一肥一猫
2013-12-23 · TA获得超过127个赞
知道小有建树答主
回答量:173
采纳率:0%
帮助的人:86.1万
展开全部
如果是大数据量建议不要用hql,直接sql速度要快
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式