JiveJdon Community Forums
在线178人 Home | 论坛 | 培训咨询 | 精华 | 查搜 | 注册 | 登陆 |
首页 » 论坛 » 开源项目大家谈
???en_US.forumThreadPrev.name??? 上一主题
Go back to the topic listing   返回主题列表
???en_US.forumThreadNext.name??? 下一主题
这个主题共有 2 回复 / 1 页 [ ]  发表新帖子  回复该主题贴
cscs31

发表文章: 34
注册时间: 2007年04月06日 10:20
给他发消息
请教hibernate query iterator的问题 发表: 2007年11月23日 14:44 回复
小弟在用Hibernate的query的时候,在获取数据的时候用iterator获取数据,可是很奇怪在第一次能够获取出数据,可是第二次再执行的时候,只能获取到类的实例,但是实例中的属性都是null。用list好像就没有问题。
看了一下网上说,因为list没有用二级缓存,而iterator会先取id然后从缓从中加载,我大致感觉应该是缓存的问题。

不知道Hibernate中我想使用iterator这种方式应该怎么写?

代码如下
sb = new StringBuffer();
sb.append("From SbBlogitems as b ");
sb.append("join b.smUsers as u ");
sb.append("Where u.id = :userId ");
hql = sb.toString();
Query q = getSession().createQuery(hql);
q.setInteger("userId", userId); q.setFirstResult((pageInfo.getCurrentPageNo() - 1)
* pageInfo.getPagesize());
q.setFetchSize(pageInfo.getPagesize());
Iterator blogItems = q.iterate();
while (blogItems.hasNext()) {
Object[] items = (Object[])blogItems.next();
//此处第二次为一个空实例
SbBlogitems bi = (SbBlogitems)items[0];
}
banq

发表文章: 9074
注册时间: 2002年08月03日 17:08
给他发消息
回复:请教hibernate query iterator的问题 发表: 2007年12月03日 11:25 回复
二级缓存如果你特别配置,不会起作用.

你前后两次加载,需要考虑中间其他操作,另外需要将Hibernate的lazy 加载考虑进去.

cscs31

发表文章: 34
注册时间: 2007年04月06日 10:20
给他发消息
re:请教hibernate query iterator的问题 发表: 2007年12月03日 16:52 回复
>>你前后两次加载,需要考虑中间其他操作
中间几乎没有操作,就相当于一个列表,我点第一次没问题,再点一次就有问题了

那么我写的程序有问题吗?
这个主题有 2 回复 / 1 页 [ ]
???en_US.forumThreadPrev.name??? 上一主题
Go back to the topic listing   返回主题列表    返回页首  返回页首
???en_US.forumThreadNext.name??? 下一主题
热点TAG: AOP cache DDD EJB 集群 设计模式 Hibernate IOC JiveJdon OO RBAC Spring Struts
查询本论坛内 回复超过的热门帖子
快速发表回复
标题
 
粗体 斜体 下划线 插入图片 插入代码 插入url链接 插入附件
内容
 

解惑之道在J道 ,打造中国最具影响力的的企业软件社区
OpenSource JIVEJDON v3.0 Powered by JdonFramework Code © 2002-08 jdon.com

anti spam