Hibernate数据加载方式

转载 2012年03月24日 09:06:37


Hibernate数据加载方式有以下几种。

一、即时加载(Immediate Loading)

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

二、延迟加载(Lazy Loading)

实体加载时,其关联数据并不是立即读取,而是当关联数据第一次被访问时再进行读取,这种加载方式在第一次访问关联数据时,必须在同一个session中,否则会报session已关闭错误。

延迟加载通过在实体的hbm文件中的对应属性中设定lazy="true"实现。Hibernate3默认的加载方式是延迟加载。即默认lazy="true",主要用于one-to-many场合。

三、预先加载(Eager Loading)

预先加载时,实体及关联对象同时读取,与即时加载类似,但是预先加载是使用"outer-join"通过一条select语句同时读取。

注意:当实体间关联比较复杂时,比如多层关联,Hibernate生成的"outer join SQL"可能过于复杂,此时可以通过设定全局变量(hibernate.max_fetch_depth)限定join的层次(一般设定为5层)。

四、批量加载(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;
这就是所谓的批量加载机制。


本文链接:http://www.snowdi.com/452.html → 转载请注明文章出自雪頔网

相关文章推荐

hibernate数据加载方式

在传统的JDBC操作里,通常通过sql语句查询加载所需要的数据,当sql提交之后,这些数据也就被读取待用了,而在hibernate里,我们拥有了更多的数据加载的方式。以实现不同种的需求。   ...

Hibernate数据加载方式

Hibernate数据加载方式: 1、即时加载(Immediate Loading)    当实体加载完成后,立即加载与实体相关联的数据。即当实体加载完成后,Hibernate自动立即读取与实体相...

comboBox 加载数据的几种方式

  • 2016年07月26日 16:48
  • 667B
  • 下载

spring加载hibernate映射文件的几种方式

在Spring的applicationContext.xml中配置映射文件,通常是在这个Bean实例中进行的,若配置的映射文件较少时,可以用sessionFactory的所属类LocalSession...

hibernate的直接加载xml的方式

private static SessionFactory sessionfactory = new Configuration()             .configure().addClass...

hibernate的两种加载方式get和load

在hibernate中我们知道如果要从数据库中得到一个对象,通常有两种方式,一种是通过session.get()方法,另一种就是通过session.load()方法,然后其实这两种方法在获得一个实体对...

spring加载hibernate映射文件的几种方式

在Spring的applicationContext.xml中配置映射文件,通常是在这个Bean实例中进行的,若配置的映射文件较少时,可以用sessionFactory的所属类LocalSession...

解决Hibernate懒加载的4种方式

本文总结了我在学习hibernate的过程中,解决hibernate懒加载问题的四种方式。 懒加载简述:当我们查询一个对象的时候,在默认情况下,返回的只是该对象的代理对象,当用户去使用该对象的属性时...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Hibernate数据加载方式
举报原因:
原因补充:

(最多只允许输入30个字)