`
isiqi
  • 浏览: 16585671 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

FetchMode.JOIN FetchMode.SELECT FetchMode.SUBSELECT 的区别

SQL 
阅读更多

@Fetch(FetchMode.JOIN) 会使用left join查询 只产生一条sql语句
@Fetch(FetchMode.SELECT) 会产生N+1条sql语句
@Fetch(FetchMode.SUBSELECT) 产生两条sql语句 第二条语句使用id in (.....)查询出所有关联的数据

分享到:
评论

相关推荐

    Hibernate Fetch 的作用

    例如,在上面的代码片段中,通过`left outer join fetch parent.childs`语句,我们告诉Hibernate在加载`Parent`实体时,也一并加载所有相关的`Child`实体。这样,即使`Parent`实体的`childs`属性被标记为`lazy="true...

    day36 06-Hibernate抓取策略:set集合上的抓取策略

    对于set集合,可以使用`@Fetch(FetchMode.JOIN)`。虽然这可能会增加结果集的大小,但如果关联的数据量小且经常被一起使用,这种方式非常有效。 4. **索引抓取(Index Fetching)**:在特定情况下,如集合需要按特定...

    How to solve the hibernate N+1 problem?

    5. **使用`@Fetch(FetchMode.JOIN)`或`@Fetch(FetchMode.SUBSELECT)`**:前者强制使用JOIN来获取关联数据,后者在父对象集合被初始化时执行子查询。 6. **使用`@NamedEntityGraph`**:JPA 2.1引入的新特性,允许...

    Hibernate多对一配置

    如果希望在加载主体对象时同时加载关联对象,可以使用`@Fetch(FetchMode.JOIN)`进行立即加载配置。 6. **性能优化**:在大数据量的情况下,需要注意避免N+1查询问题。当通过集合属性访问关联对象时,如果没有正确...

    Nhibernate框架

    - 适当使用FetchMode.Joined或FetchMode.Subselect来控制关联对象的加载策略。 - 使用二级缓存存储频繁访问的数据,减少数据库查询。 **7. 扩展与社区支持** Nhibernate拥有丰富的第三方插件和扩展,如Fluent...

    如何提高hibernate性能

    当业务层需要为Web层提供完整的数据集合时,确保在Session关闭前调用`Hibernate.initialize()`来初始化集合,或者在查询中使用`FETCH`从句或`FetchMode.JOIN`以预加载所需的数据。这避免了因延迟加载导致的多次...

    8 映射-- 一对多(部门对员工)

    - 考虑到性能,可以使用`batch-size`属性(XML)或`@Fetch(FetchMode.SUBSELECT)`(注解)进行批处理查询,减少数据库交互次数。 综上所述,"8 映射-- 一对多(部门对员工)"涉及的是数据库设计中的关系建模,以及在...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part1.rar

     16.3.5 用带子查询的select语句整批量初始化orders集合(fetch属性为“subselect”)  16.3.6 迫切左外连接检索(fetch属性为“join”)  16.4 多对一和一对一关联的检索策略  16.4.1 迫切左外连接检索(fetch...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part4

     16.3.5 用带子查询的select语句整批量初始化orders集合(fetch属性为“subselect”)  16.3.6 迫切左外连接检索(fetch属性为“join”)  16.4 多对一和一对一关联的检索策略  16.4.1 迫切左外连接检索(fetch...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part2

     16.3.5 用带子查询的select语句整批量初始化orders集合(fetch属性为“subselect”)  16.3.6 迫切左外连接检索(fetch属性为“join”)  16.4 多对一和一对一关联的检索策略  16.4.1 迫切左外连接检索(fetch...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part3

     16.3.5 用带子查询的select语句整批量初始化orders集合(fetch属性为“subselect”)  16.3.6 迫切左外连接检索(fetch属性为“join”)  16.4 多对一和一对一关联的检索策略  16.4.1 迫切左外连接检索(fetch...

Global site tag (gtag.js) - Google Analytics