JiveJdon Community Forums
在线444人   首页   主题表   培训咨询   标签   精华   查搜   注册    登陆 RSS
首页 » 论坛 » 开源项目大家谈
???en_US.forumThreadPrev.name??? 上一主题
  Go back to the topic 返回本主题   Go back to the topic listing返回主题列表
???en_US.forumThreadNext.name??? 下一主题
Go 总共有 3 回复 / 1
 发表新帖子   回复该主题贴
lizarb

悄悄话
发表文章: 7
注册时间: 2007年05月12日 22:52
Hibernate的fetch问题,都琢磨一晚上了 2007年05月13日 23:30 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
标签列表 hibernate(117)     
xml里lazy设置true,java里这么写:


result = s.createCriteria(JtsUser.class)
.setFetchMode("jtsHistories", FetchMode.JOIN)
.add(Restrictions.idEq(2))
.list();

此时result.size为4,但xml里lazy设置false,java里这么写

result = s.createCriteria(JtsUser.class)
.add(Restrictions.idEq(2))
.list();

result.size就为1了,按理说两种写发是等价的.
附:JtsUser包含jtsHistories,idEq(2)的JtsUser对应4个jtsHistory记录
banq

悄悄话
发表文章: 9481
注册时间: 2002年08月03日 17:08
回复:Hibernate的fetch问题,都琢磨一晚上了 2007年05月14日 09:34 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
lazy懒加载是Hibernate最重要功能之一,怎么能说前后写法是等价的,建议好好研究lazy设置为true和false涉及的一系列重要区别。
lizarb

悄悄话
发表文章: 7
注册时间: 2007年05月12日 22:52
re:Hibernate的fetch问题,都琢磨一晚上了 2007年05月14日 15:04 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
lazy=true之后设置.setFetchMode("jtsHistories", FetchMode.JOIN)不就是把对象fetch出来了吗,也不就是等价于lazy=false了吗?两种写法都可以把子对象fetch出来,可是我不明白为什么结果list长度不一样,说的不对的地方还请指教
banq

悄悄话
发表文章: 9481
注册时间: 2002年08月03日 17:08
回复:re:Hibernate的fetch问题,都琢磨一晚上了 2007年05月15日 14:20 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
lazy=true以后,一个对象下的List就可能一次性全部取出,而设置false,则不是一次性取出,List实际是一个代理对象,只有外界访问这个List是,Hibernate才真正访问数据库
这个主题有 3 回复 / 1Go
???en_US.forumThreadPrev.name??? 上一主题
  Go back to the topic 返回本主题   Go back to the topic listing返回主题列表    返回页首返回页首
???en_US.forumThreadNext.name??? 下一主题
热点TAG: AOP cache 缓存 DDD EJB 集群 设计模式 Hibernate IOC JiveJdon OO RBAC Seam Spring Struts
正在读取,请等待...
google yahoo 新浪ViVi 365Key网摘 天极网摘 CSDN网摘 添加到百度搜藏 POCO网摘 博采网摘
查询本论坛内 回复超过的热门帖子
     回复该主题贴
标题
 
粗体 斜体 下划线 插入图片 插入代码 插入url链接 插入附件
内容
  发贴前查询 标签列表勿重复发表问题

RSS 手机阅读 add to google add to yahoo
解惑之道在J道 ,打造中国最具影响力的的企业软件社区
OpenSource JIVEJDON v3.0 Powered by JdonFramework Code © 2002-08 jdon.com
anti spam