`
neptune
  • 浏览: 361975 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

对集合使用连接抓取会有一个限制(fetch)

阅读更多
对集合使用连接抓取会有一个限制:你只能为每个持久类配置一个集合角色、在一次外部连接中执行一次查询。 Hibernate尽可能的禁止类似笛卡儿积查询的情况,而在两个集合间进行的每个外部关联查询, 将会产生一次笛卡儿查询,这显然要比两次查询(无论是延迟查询、或非延迟查询)速度慢。 这里的对一次外部连接集合的限制同样对映射抓取策略和HQL/条件查询都适用。

如果你想超越此限制,你必须使用子查询抓取或者批量抓取策略,才能达到更为可接受的性能。 当你的应用中出现了一个树状的集合数据抓取时,通常都需要这样做。

对于单向关联来说,连接抓取并没有任何的限制。

截然不同的一种避免N+1次查询的方法是,使用二级缓存。
分享到:
评论

相关推荐

    如何提高hibernate性能

    当需要抓取延迟加载的集合或单值代理时,Hibernate会使用子查询一次性加载所有实例。这种方法避免了破碎的加载,提高了效率。 6. **延迟属性抓取(Lazy Property Fetching)**: Hibernate 3支持对单独属性进行...

    Hibernate参考文档

    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...

    hibernate 框架详解

    外连接抓取(Outer Join Fetching) 4.4.3. 二进制流 (Binary Streams) 4.4.4. 二级缓存与查询缓存 4.4.5. 查询语言中的替换 4.4.6. Hibernate的统计(statistics)机制 4.5. 日志 4.6. 实现NamingStrategy ...

    Hibernate 中文 html 帮助文档

    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...

    Hibernate_3.2.0_符合Java习惯的关系数据库持久化

    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...

    最全Hibernate 参考文档

    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...

    Hibernate+中文文档

    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...

    hibernate3.04中文文档.chm

    4.4.2. 外连接抓取(Outer Join Fetching) 4.4.3. 二进制流 (Binary Streams) 4.4.4. 二级缓存与查询缓存 4.4.5. 查询语言中的替换 4.4.6. Hibernate的统计(statistics)机制 4.5. 日志 4.6. 实现...

    Hibernate中文详细学习文档

    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...

    HibernateAPI中文版.chm

    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...

    Hibernate教程

    4.4.2. 外连接抓取(Outer Join Fetching) 4.4.3. 二进制流 (Binary Streams) 4.4.4. 二级缓存与查询缓存 4.4.5. 查询语言中的替换 4.4.6. Hibernate的统计(statistics)机制 4.5. 日志 4.6. 实现NamingStrategy...

    hibernate3.2中文文档(chm格式)

    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...

    hibernate 体系结构与配置 参考文档(html)

    外连接抓取(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...

    Hibernate3+中文参考文档

    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...

    NHibernate参考文档 2.0.0 chm

    3.5.2 外连接抓取(Outer Join Fetching) 3.5.3. 查询缓存 3.5.4. 查询语言中的替换 3.6. 日志 3.7. 实现NamingStrategy 3.8. XML配置文件 4. 持久化类(Persistent Classes) 4.1. 一个简单的POCO例子 4.1.1. 为持久...

    NHibernate中文帮组文档(2008.11月更新)

    3.5.2 外连接抓取(Outer Join Fetching) 3.5.3. 查询缓存 3.5.4. 查询语言中的替换 3.6. 日志 3.7. 实现NamingStrategy 3.8. XML配置文件 4. 持久化类(Persistent Classes) 4.1. 一个简单的POCO例子 4.1.1. 为持久...

    hibernate 中HQL语句查询学习笔记

    在本文档中所涉及的示例基于一个名为`joblog`的数据库,其中包含三个表:`student`(学生表)、`course`(课程表)和`sc`(选课表)。 - **学生表(student)**: - 字段包括:`id`(主键)、`sno`(学号)、`...

    Hibernate HQL教程

    - **解释**: `ANY`表示只要有一个值满足条件即可,`ALL`表示必须所有值都满足条件。 #### 1.4 HQL的多表查询 ##### 1.4.1 表之间的关联关系 - **解释**: 多表查询涉及表之间的关联关系,例如一对一、一对多和多对...

Global site tag (gtag.js) - Google Analytics