Hibernate的四种数据加载方式
来源:互联网 发布:没备案的域名可以用吗 编辑:程序博客网 时间:2024/05/22 03:52
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较合理.
当实体加载完成后,立即加载与实体相关联的数据。即当实体加载完成后,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较合理.
- Hibernate的四种数据加载方式
- Hibernate的五种数据检索方式
- Hibernate的五种数据检索方式
- Hibernate的五种数据检索方式
- Hive的四种数据导入方式
- hive的四种数据导入方式
- SAP 四种数据共享的方式及区别
- IOS的四种数据存储方式及优劣
- Android的四种数据储存方式之SharedPreferences
- Android 下的四种数据存储方式
- Hibernate中的五种数据检索方式
- ios中的四种数据存储方式
- ios中的四种数据存储方式
- Hive四种数据导入方式介绍
- iOS 常用四种数据存储方式
- Hive四种数据导入方式介绍
- applicationContext 四种数据源获取方式
- NEtWorking_四种数据请求方式
- Hibernate性能优化
- ARP协议的报文格式
- epoll的一些思考
- .“黑监狱”截访案开审 北京法院否认宣判截访人员
- Linux内核编译选项-3
- Hibernate的四种数据加载方式
- 技术人员的出路
- Web搜索中的用户意图的自动识别
- 中共高层频频要求开会报告工作时“不念稿”
- C++11 标准新特性:Defaulted 和 Deleted 函数
- java中重载与重写的区别
- Hibernate的fetch="join"和fetch="select"
- windows phone开发学习--Pivot动态加载数据
- 简述Hibernate部分查询语句