Topic: hibernate 中如何实现获得纪录集的一部分 实现分页

  Print this page

1.hibernate 中如何实现获得纪录集的一部分 实现分页 Copy to clipboard
Posted by: newpaul
Posted on: 2003-08-04 20:20

比如 我一共得到50 条记录 但 每页只显示10条 如何用hibernate 控制 记录集呢

2.Re:hibernate 中如何实现获得纪录集的一部分 实现分页 [Re: newpaul] Copy to clipboard
Posted by: walkingcat
Posted on: 2003-08-04 21:57

用Query

3.Re:hibernate 中如何实现获得纪录集的一部分 实现分页 [Re: newpaul] Copy to clipboard
Posted by: newpaul
Posted on: 2003-08-05 00:20

能具体说说吗

4.Re:hibernate 中 如何 实现获得 纪 录集的一 部分 实 现分页 [Re: newpaul] Copy to clipboard
Posted by: SimonLei
Posted on: 2003-08-05 09:04

query.setFirstResult( startRow );
query.setMaxResults( rowsPerPage );
why not read documents before you ask?

5.Re:hibernate 中如何实现获得纪录集的一部分 实现分页 [Re: newpaul] Copy to clipboard
Posted by: luoq_dl
Posted on: 2003-08-05 10:31

其实,如果记录集较小,100条以内,不妨找个地方(顺序集合)存起来,后续的翻页不用查询数据库,直接从集合中取出来,然后显示。
我做过一个放在Session中,因为是管理界面,用户少,数据集合不大,200条左右,所以就放在Session变量中。

6.Re:hibernate 中如何实现获得纪录集的一部分 实现分页 [Re: luoq_dl] Copy to clipboard
Posted by: l_walker
Posted on: 2003-08-05 11:05

luoq_dl wrote:
其实,如果记录集较小,100条以内,不妨找个地方(顺序集合)存起来,后续的翻页不用查询数据库,直接从集合中取出来,然后显示。
我做过一个放在Session中,因为是管理界面,用户少,数据集合不大,200条左右,所以就放在Session变量中。


session是有大小限制的,而且过多过大的session会影响性能,能不放就不放:)

分页功能如楼上那位兄台说的用Query

7.Re:hibernate 中如何实现获得纪录集的一部分 实现分页 [Re: l_walker] Copy to clipboard
Posted by: luoq_dl
Posted on: 2003-08-05 11:13

不是绝对的,如果查询的过程非常麻烦,放在Session中未必降低性能,可能会提高性能。注意前提是:用户少,数据集合不大。

8.Re:hibernate 中如何实现获得纪录集的一部分 实现分页 [Re: newpaul] Copy to clipboard
Posted by: salaris
Posted on: 2003-08-06 11:09

agree luoq_dl
cache 能有效的提升性能。

9.Re:hibernate 中如何实现获得纪录集的一部分 实现分页 [Re: newpaul] Copy to clipboard
Posted by: morchory
Posted on: 2003-08-07 16:29

newpaul wrote:
比如 我一共得到50 条记录 但 每页只显示10条 如何用hibernate 控制 记录集呢


使用 Criteria Queries
可以參考 Hibernate 最新版的 doc ..
新增第十三章 Criteria Queries

Criteria crit = sess.createCriteria(Cat.class);
crit.setMaxResults(10);
List cats = crit.list();
for (Iterator it = cats.iterator(); it.hasNext();) {
Cat cat = (Cat) it.next();
out.println("CAT: " + cat.getName() + " (" + cat.getSex() + ", " + cat.getWeight() + ")<br/>");
}


enjoy it ~~

10.Re:hibernate 中如何实现获得纪录集的一部分 实现分页 [Re: luoq_dl] Copy to clipboard
Posted by: Copenhagen
Posted on: 2003-08-08 17:52

luoq_dl wrote:
其实,如果记录集较小,100条以内,不妨找个地方(顺序集合)存起来,后续的翻页不用查询数据库,直接从集合中取出来,然后显示。
我做过一个放在Session中,因为是管理界面,用户少,数据集合不大,200条左右,所以就放在Session变量中。


I don't think the session is a proper solution for the cache mechnism.
of coz, few user and complex sql query do need a efficient cache. why not use a static HashMap or something else(many runtime cache-management toolkits do really well)? within kinds of App Server, the implementation of session management is very diffrent, and it maybe could become a bottleneck of your application, such as in our last project.

so, my opinion is: mostly, to cache data within session is really a performance-killer. :P


   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923