我在hibernate中用setFirstResult setMaxResult
List items = criteria.setFirstResult((pageno - 1) * pageSize).setMaxResults(pageSize).list();
这样我只能实现翻页,但数据太多有7W条且关联表多,翻到最后一页时非常慢。
我现在想只查询出前500条数据来分页,有什么好办法。
谢谢各位!
List items = criteria.setFirstResult((pageno - 1) * pageSize).setMaxResults(pageSize).list();
这样我只能实现翻页,但数据太多有7W条且关联表多,翻到最后一页时非常慢。
我现在想只查询出前500条数据来分页,有什么好办法。
谢谢各位!
解决方案 »
- jspSmartUpload实现文件上传 代码没有提示错误但是运行时会出现404错误 The requested resource is not avai
- 关于如何检测用户名已经存在
- ATGrid报表控件/WEB插件[专业版]
- 数据库中有null,hibernate如何处理让他变成空值呢,我想不用if 来判断就可以实现。hibernate 有没有这样的处理能力呢
- 请教获取本机外网ip的问题!
- 一个脚本问题:如何打开一个指定的word文件
- 一个简单的问题,进来看看!
- 谁能帮我看看这分页错在哪里?谢谢
- Bean编译后的class该放哪儿?数据库连接问题,急!解决给分
- Linux服务器端如何根据不同的URL进行解析,调用不同的java程序?
- Hibernate 查询编码欧元符号 变成乱码
- myeclipse的变量声明问题
如查询task列表时,我需要servicerequest对象关联,但servicerequest有关联着个多的别的关联,我如何控制servicerequest只取我想要的数据?
<hibernate-mapping package="com.newchina.po">
<class name="Task" table="Task" dynamic-insert="true" dynamic-update="true">
<id name="id" type="java.lang.Integer">
<column name="ID" />
<generator class="native" />
</id>
......
<many-to-one name="serviceRequest" column="ServiceRequest" class="ServiceRequest" cascade="none" />
criteria.add(Restrictions.sqlRestriction("ROWNUM <= 500"))
int maxRecords = 500;
int startNum = (pageNo - 1)* pageSize;
int endNum = (maxRecords - startNum) % pageSize;if (endNum <= 0) { //超出最大数据量
//不用搜索
}
else {
List items = criteria.setFirstResult(startNum).setMaxResults(endNum).list();}
大虾么,没有更好的办法么?我的数据库是sqlserver 2005.当然用sql可以,但我不想用sql
实际上这个问题可以搜索下 因为用过HIBERNATE的人应该知道 SQLSERVER 都是用伪分页实现的 (用TOP不能达到完美) 他先是用TOP查询 然后再在内存中进行假分页不过2005就好多了 因为有了类似Oracle的rownum的函数
http://blog.csdn.net/tdl982324/archive/2008/07/03/2607674.aspx
需要重写方言
没出现过lz这样的情况。。关联表一样很多!这样我只能实现翻页,但数据太多有7W条且关联表多,翻到最后一页时非常慢
能发表下看法吗?因为7w多条记录,到了后面越来越慢.!这句。为什么会越来越慢呢! 我倒是很想知道.因为我没出现这种现象!