`
zhang19841017
  • 浏览: 79407 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Hibernate fetch 总结

阅读更多

fetch 和 lazy 主要是用来级联查询的,   而 cascade 和 inverse 主要是用来级联插入和修改的              fetch参数指定了关联对象抓取的方式是select查询还是join查询,select方式时先查询返回要查询的主体对象(列表),再根据关联外键 id,每一个对象发一个select查询,获取关联的对象,形成n+1次查 询; 而join方式,主体对象和关联对象用一句外键关联的sql同时查询出来,不会形成多次查询。
如果你的关联对象是延迟加载的,它当然不会去查询关联对象。 另外,在hql查询中配置文件中设置的join方式是不起作用的(而在所有其他查询方式如get、criteria或再关联获取等等都是有效的),会使用 select方式,除非你在hql中指定join fetch某个关联对象。fetch策略用于定义 get/load一个对象时,如何获取非lazy的对象/集合。 这些参数在Query中无效。

分享到:
评论

相关推荐

    Hibernate Fetch 的作用

    在深入探讨Hibernate Fetch的作用之前,我们首先需要理解Hibernate框架本身以及其在持久化领域的重要性。Hibernate是一个开源的对象关系映射(ORM)框架,用于Java应用,它提供了将数据库记录映射到对象的方法,使得...

    J2EE系统之-hibernate学习总结

    ### J2EE系统之-hibernate学习总结 #### 对象持久化理论 - **对象持久化定义**:将对象中的数据转换存储至外部持久性存储设备的过程,如数据库、磁盘等。 - **对象持久化的原因**: - 内存易失性:断电后数据丢失...

    hibernate关联关系总结

    在Hibernate中,可以通过@OneToOne注解来定义这种关系,可以指定fetch属性来控制加载策略,并通过cascade属性设置级联操作。同时,可以使用@PrimaryKeyJoinColumn注解来指定主键的关联。 2. **一对多关联...

    Hibernate总结(三)

    14. **性能优化**:通过批处理(batch-size)、预加载(fetch plan)、二级缓存策略等手段,可以显著提升Hibernate应用的性能。 以上是对Hibernate的简要总结,详细内容可参考《hibernate_reference.pdf》文档,该...

    hibernate学习总结

    **hibernate学习总结** 在Java开发领域,Hibernate是一个非常重要的对象关系映射(ORM)框架,它极大地简化了数据库操作。以下是我个人在学习Hibernate过程中的一些总结,这些内容是基于Eclipse集成开发环境和...

    Hibernate学习总结

    学习成长路,Hibernate总结: 1.Hibernate入门优缺点、 2.Hibernate的操作CRUD、 3.主键生成机制、 4.持久化对象的状态、 5.映射一对多关联关系、 6.深入session、 7.懒加载、 8.Hibernate检索策略(fetch抓取策略)、...

    hibernate 总结 附 项目

    - **立即加载**: 使用 `fetch = FetchType.EAGER` 可以指定关联对象在父对象加载时一起加载。 **级联操作(Cascading)** 级联操作允许在一个实体的 CRUD 操作中影响与其关联的实体。例如,删除一个实体时,可以...

    Hibernate.cfg.xml配置总结

    3. `jdbc.fetch_size`和`jdbc.batch_size`: 分别设置了每次查询的记录数和批量操作的大小,可以优化数据库交互的性能。 四、实体类映射 在Hibernate.cfg.xml中,`<mapping>`元素用于指定实体类对应的映射文件,...

    Hibernate 参数配置详解

    例如,通过设置合适的 `hibernate.max_fetch_depth` 和 `hibernate.default_batch_fetch_size` 可以显著提升应用性能;而启用 `hibernate.generate_statistics` 则有助于我们更好地监控和分析应用性能瓶颈。此外,...

    hibernate

    根据提供的文件信息,我们可以深入探讨Hibernate框架中的几个关键概念,特别是`fetch`, `lazy`, `cascade`, 和 `inverse`关键字的使用与理解。这四个概念在处理对象关系映射(ORM)时非常重要,尤其是在Java环境下...

    Hibernate关联关系总结

    在Java持久化技术中,Hibernate是一个非常重要的框架,它提供了对象关系映射(ORM)功能,使得开发人员能够用面向对象的方式操作数据库。本篇文章将深入探讨Hibernate中的三种主要关联关系:一对一、一对多和多对多...

    Hibernate总结[包含代码段]

    **总结** Hibernate 作为Java ORM框架,通过简化数据库操作,提升了开发效率。理解其核心概念、工作流程和各种API的使用,能帮助我们更好地进行数据持久化操作。同时,合理利用缓存、查询优化和实体关系映射,可以...

    HIbernate关联关系总结

    在Java的ORM(对象关系映射)框架Hibernate中,关联关系是将数据库中的表与Java对象之间建立联系的...同时,配置关联关系时,需注意级联操作(如`cascade`属性)、懒加载和fetch策略等,以优化性能和减少数据库交互。

    Hibernate知识总结

    Hibernate 是一个强大的 Java 持久化框架,用于简化数据库操作。它提供了对象关系映射(ORM)功能,使得开发者可以使用面向对象的方式来处理数据库事务,而无需关注底层的 SQL 代码。以下是对 Hibernate 框架的一些...

    关于hibernate的批处理

    总结,Hibernate的批处理是大数据场景下提高性能的关键技术之一,需要根据具体业务需求和系统资源进行细致的配置和优化。了解并掌握这些知识点,能够帮助开发者更高效地利用Hibernate处理大规模数据。

    hibernate配置文件hibernate.cfg.xml的详细解释

    - **Fetch Size**: `<property name="jdbc.fetch_size">50</property>` 控制Hibernate每次从数据库获取的数据量,较大的值可以减少查询次数,但会增加内存消耗。 - **Batch Size**: `...

    Hibernate映射配置实例大全(详细总结)

    通过`lazy="true"`或`fetch="select"`(或"subselect")可以设置加载策略。 事务管理是Hibernate中的另一个关键点。我们可以使用`<transaction-management-config>`来配置Hibernate的事务处理方式,如编程式事务...

    Hibernate笔记

    6. **Fetch Types**: 在Hibernate中,提供了多种方式来获取关联对象:`EAGER`(急切加载)和`LAZY`(惰性加载)。 #### 三、获取数据方法 - **load()**: 用于加载指定主键对应的实体对象。如果对象不在缓存中,则...

Global site tag (gtag.js) - Google Analytics