lazy只有真正使用时才能查询数据库
cglib是对生成的类进行代理 JDK动态代理 只对生成的接口类进行代理
cglib是继承该类生成了子类 返回给使用者,在真正调用代理方法时会检查是否加载了目标对象,如果没加载它才会真正的去访问。
hibernate3.0 lazy在使用标签上默认为true;
lazy:使用的标签有:
<class> 取值为false/true, 注意: class标签里的 lazy只对普通属性有效,如:即使把class标签里的lazy属性设置为false 如:list,set
仍支持延迟加载。
<propety> 取值为false/true(需要使用类增强工具,修改字节码),
<list> 取值为:false true extra
<set> 取值为:false true extra
<one-one> <many - one> 单端关联上 取值为:false/proxy/noproxy
lazy生效期和session一致 session关闭lazy失效
采用方法:
web.xml
<filter>
<filter-name>hibernateFilter</filter-name>
<filter-class>
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
</filter-class>
</filter>
本文深入探讨Hibernate中Lazy加载机制的工作原理及其配置方式。通过详细解释cglib代理与JDK动态代理的区别,介绍了Hibernate如何实现对不同类型的属性进行延迟加载,并讨论了Lazy加载的有效范围及其实现方法。
816

被折叠的 条评论
为什么被折叠?



