hibernate lazy策略可以使用在:
* <class>标签上,取true,false值
* <property>标签上,取true,false需要增强类
* <set><list>上,取false,true,extra
* <one-to-one>、<many-to-one>单端关联上,可以取值false/proxy/noproxy
lazy概念:只有真正使用该对象时,才会创建,对hibernate而言,真正使用的时候才会发出,
hibernate支持lazy策略只有在session打开状态下才有效
如果把用延迟加载的话数据传递给动态页面那么使用OpenSessionInView模式,直到我们把session中的所有属性用完了,才关闭session
<class>标签上的lazy特性只对普通属性起作用
hibernate在集合上的lazy策略,取值false,true,extra
<class>标签上的lazy不会影响到集合上面的lazy特性,lazy默认为true;
集合标签上面的lazy特性推荐使用 extra 因为比较智能
在<class>上lazy为true时,load时不发出sql语句,只有在使用是才发出。
为false时load时就马上发出sql语句。
在<class>上lazy为true时,load时不发出sql语句,只有使用时才发出。
为false时在第一次load时就执行全部sql语句。为extra时,和true差不多,不过发出的sql语句比较智能。
hibernate 在<one-to-one><many-to-one>单端关联上,可以取值false/proxy/noproxy 默认proxy
<class>标签上的lazy不会影响到单端上面的lazy特性。