Hibernate---延迟加载

Hibernate 懒加载策略

概念

Lazy 的概念就是只有在真正使用对象时,才会去创建。对 hibernate 而言,就是真正加载时才发出加载 Sql 语句。   延迟加载机制是为了避免一些无谓的性能开销而提出来的。

重点牢记

1.Load 支持延迟加载,get 不支持延迟加载。

2.lazy 的生命周期 session 相同,lazy 加载必须依赖于session 一直开启。

3.Hibernate lazy 属性,在3.x 后是默认打开的,在以前版本中默认是关闭的。

4.hibernate 通过 cjlib 实现代理。

配置类型

Class  

true /false

只对普通属性的延迟加载有效,不包括集合和其他类属性。

Property

true /false

需要类增强器来对实体类的 Class 文件进行强化处理。

Hibernate3 中,引入了一种新的特性 —— 属性的延迟加载,这个机制又为获取高性能查询提供了有力的工具。比如它可以用于一个复杂对象中某个属性是一个大文本,我们不想再加载这个对象时浪费太多时间,那么我们就可以使用属性推后加载。

 

集合 <set><List>

true /false/extra

如果设置为 true ,那么就会在该集合被加载时发出 SQL 语句。

如果设置为 false ,那么在发出查询普通属性 sql 时就会随后发出集合的查询语句。

如果设置为 extra ,与设置为 true 类似,但相对智能,建议在实际工作中选用 extra.

 

One-to-one,many-to-one[ 单端关联 ]

proxy /false/noproxy

如果设置为 proxy ,那么就会在类对象被加载时发出 SQL 语句。

如果设置为 false ,那么在发出查询普通属性 sql 时就会随后发出类对象的查询语句。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值