`
xuyuanshuaaa
  • 浏览: 394750 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

hibernate 数据加载

 
阅读更多
Hibernate数据加载方式:
1、即时加载(Immediate Loading)
   当实体加载完成后,立即加载与实体相关联的数据。即当实体加载完成后,Hibernate自动立即读取与实体相关联的数据,并且填充到实体对应的属性中。这种加载通常有多条select语句,即select实体数据后,同时select实体相关联的数据。

2、延迟加载(Lazy Loading)
   实体加载时,其关联数据并不是立即读取,而是当关联数据第一次被访问时再进行读取,这种加载方式在第一次访问关联数据时,必须在同一个session中,否则会报session已关闭错误。
   延迟加载通过在实体的hbm文件中的对应属性中设定lazy="true"实现。Hibernate3默认的加载方式是延迟加载。即默认 lazy="true",主要用于one-to-many场合。

3、预先加载(Eager Loading)
   预先加载时,实体及关联对象同时读取,与即时加载类似,但是预先加载是使用"outer-join"通过一条select语句同时读取。
   注意:当实体间关联比较复杂时,比如多层关联,Hibernate生成的"outer join SQL"可能过于复杂,此时可以通过设定全局变量(hibernate.max_fetch_depth)限定join的层次(一般设定为5层)。

4、批量加载(Batch Loading)
   对于即时和延迟加载,可以采用批量加载进行优化。
   批量加载就是通过批量提交多个限定条件,一次多个限定条件的数据读取。同时在实体映射文件中的class节点,通过配置"batch-size"参数打开批量加载机制,并限定每次批量加载数据的数量,一般来说该值<10较合理.

比如: 
select * from test where id=1;
select * from test where id=2;
我们可以整合成一条语句:
select * from test where id=1 ro id=2;
这就是所谓的批量加载机制。
分享到:
评论

相关推荐

    配置hibernate数据源

    配置Hibernate数据源是一项基础而重要的任务,涉及在Java应用程序中集成和使用Hibernate框架以及MySQL数据库。以下内容旨在详细介绍如何在MyEclipse开发环境中配置Hibernate数据源,同时解释相关概念和步骤。 首先...

    Hibernate之数据加载方式

    **标题:“Hibernate之数据加载方式”** 在Java的持久化框架中,Hibernate是一个非常重要的工具,它简化了数据库操作,提供了对象关系映射(ORM)的功能。本篇将深入探讨Hibernate的数据加载方式,帮助开发者更好地...

    Hibernate数据持久层jar包源码解析

    《Hibernate数据持久层jar包源码解析》 在软件开发中,数据持久层是系统架构中的关键部分,它负责将应用程序的数据与数据库进行交互。Hibernate作为一款强大的Java对象关系映射(ORM)框架,极大地简化了这个过程。...

    Java Hibernate3 添加和删除数据

    在Java Hibernate3中,添加和删除数据是通过持久化类和配置文件实现的,无需直接编写SQL语句。以下是关于这个主题的详细说明。 首先,我们需要了解Hibernate3的基本概念。Hibernate提供了一个API,允许开发者将Java...

    spring boot 2多数据源,里面有hibernate和mybatis的多数据源代码

    在这个项目中,我们有两个主要的数据访问技术:Hibernate和MyBatis,它们都是Java领域中广泛使用的ORM(对象关系映射)工具。 **Hibernate** 是一个强大的ORM框架,它允许开发者通过Java对象来操作数据库,而无需...

    Hibernate延迟加载以及利用Spring

    ### Hibernate延迟加载以及利用Spring #### 一、Hibernate延迟加载概念与原理 在理解Hibernate的延迟加载机制之前,我们首先需要了解什么是延迟加载。延迟加载(Lazy Loading)是一种设计模式,其核心思想是在真正...

    hibernate 延迟加载深入剖析

    当程序试图访问这些属性时,Hibernate会在后台异步加载实际的数据。 #### 三、延迟加载的具体应用场景 ##### 3.1 集合属性的延迟加载 集合属性的延迟加载是延迟加载中最常见的应用场景之一。当一个实体拥有大量的...

    Hibernate 显示数据库数据

    9. Eclipse集成:在Eclipse中,可以通过Maven或Gradle添加Hibernate依赖,并使用IDE的工具来生成实体类和映射文件,方便开发。 10. 示例项目:`HibernateShowStudent`可能是演示如何从数据库中查询并显示`Student`...

    hibernate延迟加载解决

    ### Hibernate延迟加载详解 #### 一、什么是延迟加载? 延迟加载是一种优化技术,在软件开发中广泛应用于各种场景,尤其在...通过合理配置和使用这一机制,可以有效地优化应用程序的数据加载流程,提高用户体验。

    springboot2.0多数据源集成hibernate配置hibernateDaoSupport示例

    本示例主要介绍如何实现Spring Boot 2.0多数据源的集成,并结合Hibernate进行配置,特别是在DAO层使用`HibernateDaoSupport`进行操作,而非使用JPA(Java Persistence API)。 首先,让我们了解Spring Boot 2.0的...

    Hibernate 延迟加载剖析与代理模式应用

    为了避免这种情况,Hibernate提供了延迟加载机制,使得只有在真正需要访问`addresses`时,才会去数据库查询相关的`Address`数据。 配置延迟加载的关键在于Hibernate的映射文件。在`&lt;set&gt;`元素中,我们通常会设置`...

    Hibernate 使用缓存时,数据同步问题

    2. **使用`refresh()`方法**:调用实体对象的`refresh()`方法可以强制Hibernate从数据库中重新加载该对象的状态,以覆盖缓存中的陈旧数据。 3. **设置缓存模式**:在查询时,可以设置`CacheMode.REFRESH`,强制...

    Hibernate数据访问技术大全

    《Hibernate数据访问技术大全》是一本深入探讨Java领域中Hibernate框架的数据访问技术的权威指南。Hibernate作为Java领域中广泛使用的对象关系映射(ORM)工具,它极大地简化了数据库操作,使得开发人员能够以面向...

    Hibernate使用——自定义数据类型

    在Java世界中,Hibernate是一个非常流行的ORM(对象关系映射)框架,它允许开发者将数据库操作与业务逻辑解耦,通过面向对象的方式处理数据。在实际项目开发中,有时我们可能需要对数据库中的某些字段使用自定义的...

    Hibernate数据持久层框架 v6.4.4.zip

    《深入理解Hibernate数据持久层框架 v6.4.4》 Hibernate是一款强大的Java持久层框架,它极大地简化了数据库操作,使得开发者可以更加专注于业务逻辑的实现,而非繁琐的SQL语句编写。Hibernate v6.4.4是该框架的一个...

    hibernate对Blob类型字段进行数据添加.txt

    ### Hibernate 对 Blob 类型字段进行数据添加 #### 知识点概述 在处理数据库操作时,经常需要存储二进制大对象(Binary Large Object,简称 BLOB),例如图像、视频等非文本数据。BLOB 类型是数据库系统中用于存储...

    HIBERNATE FOR NETBEANS 数据操作方法

    **Hibernate for NetBeans 数据操作方法** Hibernate 是一个流行的开源对象关系映射(ORM)框架,它简化了Java应用程序与数据库之间的交互。NetBeans 是一款强大的集成开发环境(IDE),提供了丰富的功能来支持...

    Hibernate执行持久层访问步骤

    1. 添加Hibernate依赖:在项目中引入Hibernate的JAR包或者Maven/Gradle依赖。 2. 配置Hibernate:创建hibernate.cfg.xml文件,设置数据库连接参数,如驱动类名、URL、用户名、密码等。 二、实体类定义 1. 创建实体...

Global site tag (gtag.js) - Google Analytics