`
xuyuanshuaaa
  • 浏览: 388288 次
  • 性别: 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;
这就是所谓的批量加载机制。
分享到:
评论

相关推荐

    Java Hibernate3 添加和删除数据

    Java Hibernate3 添加和删除数据实例,供大家一起共同分享学习。

    Hibernate之数据加载方式

    NULL 博文链接:https://javakeith.iteye.com/blog/860140

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

    通过延迟加载技术可以避免过多、过早地加载数据表里的数据,从而降低应用的内存开销。Hibernate 的延迟加载本质上就是代理模式的应用,当程序通过 Hibernate 装载一个实体时,默认情况下,Hibernate 并不会立即抓取...

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

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

    hibernate优化前的程序

    hibernate优化前的程序,Hibernate 延时加载,Hibernate数据加载方式

    经典struts+hibernate结合的电影售票系统项目

    电影售票系统采用struts+hibernate再结合java的dao模式框架做的,具有典型的mvc结构,在后台操作电影影片中:在添加电影这步,我用了上传案例结合hibernate的添加数据功能成功的将电影封面上传到了指定位置,一部...

    Hibernate实现批量添加数据的方法

    主要介绍了Hibernate实现批量添加数据的方法,详细分析了基于Hibernate执行批量添加操作的具体步骤与相关实现代码,需要的朋友可以参考下

    Hibernate延迟加载

    hibernate延迟加载机制是为了避免一些无谓的性能开销而提出来的,所谓延迟加载就是当在真正需要数据的时候,才真正执行数据加载操作!

    基于hibernate的简单数据库实现

    hibernate可以实现简单的数据库操作,可以实现简单的数据增加,数据查询,数据修改,数据删除。

    spring+hibernate整合实现简单数据库添加记录

    spring+hibernate整合实现简单数据库添加记录,适合初学spring的学员

    深入浅出Hibernate(PDF)第一部分

    本书内容深入浅出,先讲述持久层设计与ORM,再由Hibernate概述、Hibernate基础Hibernate高级特性顺序展开,直至Hibernate实战,重点讲述了Hibernate的基础语法、基础配置、O/R映射、数据关联、数据检索、HQL实用技术...

    Hibernate3.1_学习源码

    案例目录: 01 01Hibernate_Handwork : 手工配置使用Hibernate,其中详细标了...07 07Hibernate_Mapping : Hibernate中的数据关联技术,是一个重点又是一个难点,演示了 一对一、多对一、一对多、多对多等几种情况。

    hibernate操作数据库笔记

    //该方法会立即加载/获取数据(只要调用该方法就会立即向数据库发出查询语句),该方法只在内部缓存查找数据,如果内部缓存中没有数据就直接去数据库查询,当数据库中没有要查询的数据时返回null (6).load(Class ...

    深入浅出Hibernate.pdf

    本书内容深入浅出,先讲述持久层设计与ORM,再由Hibernate概述、Hibernate基础Hibernate高级特性顺序展开,直至Hibernate实战,重点讲述了Hibernate的基础语法、基础配置、O/R映射、数据关联、数据检索、HQL实用技术...

    Hibernate+中文文档

    3.2. Hibernate数据源属性 3.3. Hibernate配置属性 3.4. Hibernate JDBC和连接(connection)属性 3.5. Hibernate缓存属性 3.6. Hibernate事务属性 3.7. 其他属性 3.8. Hibernate SQL方言 (hibernate.dialect) ...

    spring hibernate 日志管理插件

    数据日志:设计中提供数据日志注入接口,管理数据日志注入,业务系统可过基于hibernate Listener 拦截数据表操作,注入数据日志(此为业务系统实现,设计中提供数据日志注入接口),提供 日志管理:通过统一的...

    最简单的Hibernate工程

    一个最简单的Hibernate工程,可通过hibernate.cfg.xml或者hibernate.properties加载数据源并对对象操作,下载后可直接导入eclipse运行

    Spring与Hibernate框架整合案例之数据库添加数据(经典入门案例,适合初学者,不看后悔)

    Spring与Hibernate框架整合案例之数据库添加数据(经典入门案例,适合初学者,不看后悔)

    最简单Hibernate工程代码

    最简单的Hibernate工程代码,可通过hibernate.cfg.xml或者hibernate.properties加载数据源,此工程下载后可直接导入eclipse运行

    深入浅出Hibernate(PDF)第二部分

    本书内容深入浅出,先讲述持久层设计与ORM,再由Hibernate概述、Hibernate基础Hibernate高级特性顺序展开,直至Hibernate实战,重点讲述了Hibernate的基础语法、基础配置、O/R映射、数据关联、数据检索、HQL实用技术...

Global site tag (gtag.js) - Google Analytics