首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

[转]hibernate 中的lazy对策

2012-09-10 
[转]hibernate 中的lazy策略lazy策略可以用在:?* class标签上:可以取值true/false?* property标签上,

[转]hibernate 中的lazy策略

lazy策略可以用在:?
* <class>标签上:可以取值true/false?
* <property>标签上,可以取值true/false,这个特性需要类增强?
* <set>/<list>等集合上,可以取值为true/false/extra?
* <one-to-one>/<many-to-one>等标签上,可以取值false/proxy/no-proxy?

代理的概念:只有真正使用的时候才会创建。对于hibernate而言,真正使用时候才会发出sql。

重要的概念:?
1、lazy的概念,指在需要的时候才发出sql?
2、lazy策略只是在session打开期间才是有效的?

注意:?
Hibernate类级别的lazy加载策略:可以控制什么时候加载这些普通对象属性?

测试单元的使用:?
请先运行初时化程序InitData,在执行每个单元测试?


Hibernate集合属性的懒加载策略:?

在集合属性上,可以配置懒加载策略,取值为:true/false/extra?

true:默认取值,它的意思是只有在调用这个集合获取里面的元素对象时,才发出查询语句,加载其?
???? 集合元素的数据?
false:取消懒加载特性,即在加载对象的同时,就发出第二条查询语句加载其关联集合的数据?
extra:一种比较聪明的懒加载策略,即调用集合的size/contains等方法的时候,hibernate并不会去加载整个集合的数据,而是发出一条聪明的SQL语句,以便获得需要的值,只有在真正需要用到这些集合元素对象数据的时候,才去发出查询语句加载所有对象的数据?


Hibernate单端关联懒加载策略:即在<one-to-one>/<many-to-one>标签上可以配置?
懒加载策略。?

可以取值为:false/proxy/no-proxy?
false:取消懒加载策略,即在加载对象的同时,发出查询语句,加载其关联对象?
proxy:这是hibernate对单端关联的默认懒加载策略,即只有在调用到其关联对象的方法的时候?
????? 才真正发出查询语句查询其对象数据,其关联对象是代理类?
no-proxy:这种懒加载特性需要对类进行增强,使用no-proxy,其关联对象不是代理类?

注意:在class标签上配置的lazy属性不会影响到关联对象!!!?

热点排行