`
java-mans
  • 浏览: 11430723 次
文章分类
社区版块
存档分类
最新评论

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时就会随后发出类对象的查询语句。

原文链接:http://blog.csdn.net/pengpeng2395/archive/2008/12/26/3612040.aspx

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics