HIBERNTE join fetch疑问

todn 2009-03-29 08:41:33
比如有3个类:ONE TOW THREE.ONE类有一个SET tows集合,里面关联的是TOW对象,同样的,在TOW里面有一个SET threes集合,里面关联的是THREE对象。这些SET的lazy配置都为true。现在用以下HQL检索:from ONE o left join fetch a.tows.这样的结果是会把tows里面的对象全部实例化,但是threes里面的对象会不会也被实例化呢?还是threes只是一个代理集合而没有实例华。
...全文
67 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
loveunittesting 2009-03-30
  • 打赏
  • 举报
回复
lazy配置改为false可以达到要求,不会忽略的。但是还是建议用一下hibernte的filter把three的集合初始化出来,lazy=false毕竟对性能影响比较大。
todn 2009-03-29
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 kenshinlou 的回复:]
你的sql 里面就没有three的份,肯定啦,给你两条路: (1) 把three这个set 的设置为立即加载,(2) 查询出来后用hibernate 的函数将它初始化还有一条变态的路: 用opensessioninview filter
[/Quote]
kenshinlou的意思是说,如果把three的lazy配置改为false,那么以上的HQL就连tow对象的threes集合一起实例化吗?但是资料上说HQL会忽略XML配置信息,采用立即检索,是这样的吗?
kenshinlou 2009-03-29
  • 打赏
  • 举报
回复
你的sql 里面就没有three的份,肯定啦,给你两条路: (1) 把three这个set 的设置为立即加载,(2) 查询出来后用hibernate 的函数将它初始化还有一条变态的路: 用opensessioninview filter
todn 2009-03-29
  • 打赏
  • 举报
回复
各位帮忙回答一下。
todn 2009-03-29
  • 打赏
  • 举报
回复
比如有3个类:ONE TOW THREE.ONE类有一个tows SET集合,里面关联的是TOW对象,同样的,在TOW里面有一个threes SET集合,里面关联的是THREE对象。这些SET的lazy配置都为true。现在用以下HQL检索:from ONE o left join fetch o.tows.这样的结果是会把tows里面的对象全部实例化,但是threes里面的对象会不会也被实例化呢?还是threes只是一个代理集合而没有实例化。
HIBERNATE - 符合Java习惯的关系数据库持久化 Hibernate参考文档 3.2 -------------------------------------------------------------------------------- 目录 前言 1. 翻译说明 2. 版权声明 1. Hibernate入门 1.1. 前言 1.2. 第一部分 - 第一个Hibernate应用程序 1.2.1. 第一个class 1.2.2. 映射文件 1.2.3. Hibernate配置 1.2.4. 用Ant构建 1.2.5. 启动和辅助类 1.2.6. 加载并存储对象 1.3. 第二部分 - 关联映射 1.3.1. 映射Person类 1.3.2. 单向Set-based的关联 1.3.3. 使关联工作 1.3.4. 值类型的集合 1.3.5. 双向关联 1.3.6. 使双向连起来 1.4. 第三部分 - EventManager web应用程序 1.4.1. 编写基本的servlet 1.4.2. 处理与渲染 1.4.3. 部署与测试 1.5. 总结 2. 体系结构(Architecture) 2.1. 概况(Overview) 2.2. 实例状态 2.3. JMX整合 2.4. 对JCA的支持 2.5. 上下文相关的(Contextual)Session 3. 配置 3.1. 可编程的配置方式 3.2. 获得SessionFactory 3.3. JDBC连接 3.4. 可选的配置属性 3.4.1. SQL方言 3.4.2. 外连接抓取(Outer Join Fetching) 3.4.3. 二进制流 (Binary Streams) 3.4.4. 二级缓存与查询缓存 3.4.5. 查询语言中的替换 3.4.6. Hibernate的统计(statistics)机制 3.5. 日志 3.6. 实现NamingStrategy 3.7. XML配置文件 3.8. J2EE应用程序服务器的集成 3.8.1. 事务策略配置 3.8.2. JNDI绑定的SessionFactory 3.8.3. 在JTA环境下使用Current Session context (当前session上下文)管理 3.8.4. JMX部署 4. 持久化类(Persistent Classes) 4.1. 一个简单的POJO例子 4.1.1. 实现一个默认的(即无参数的)构造方法(constructor) 4.1.2. 提供一个标识属性(identifier property)(可选) 4.1.3. 使用非final的类 (可选) 4.1.4. 为持久化字段声明访问器(accessors)和是否可变的标志(mutators)(可选) 4.2. 实现继承(Inheritance) 4.3. 实现equals()和hashCode() 4.4. 动态模型(Dynamic models) 4.5. 元组片断映射(Tuplizers) 5. 对象/关系数据库映射基础(Basic O/R Mapping) 5.1. 映射定义(Mapping declaration) 5.1.1. Doctype 5.1.2. hibernate-mapping 5.1.3. class 5.1.4. id 5.1.5. composite-id 5.1.6. 鉴别器(discriminator) 5.1.7. 版本(version)(可选) 5.1.8. timestamp (可选) 5.1.9. property 5.1.10. 多对一(many-to-one) 5.1.11. 一对一 5.1.12. 自然ID(natural-id) 5.1.13. 组件(component), 动态组件(dynamic-component) 5.1.14. properties 5.1.15. 子类(subclass) 5.1.16. 连接的子类(joined-subclass) 5.1.17. 联合子类(union-subclass) 5.1.18. 连接(join) 5.1.19. 键(key) 5.1.20. 字段和规则元素(column and formula elements) 5.1.21. 引用(import) 5.1.22. any 5.2. Hibernate 的类型 5.2.1. 实体(Entities)和值(values) 5.2.2. 基本值类型 5.2.3. 自定义值类型 5

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧