黑马程序员技术交流社区

标题: 我越学越糊涂。。。 [打印本页]

作者: 彭昆    时间: 2013-1-28 22:57
标题: 我越学越糊涂。。。
本帖最后由 彭昆 于 2013-1-29 22:16 编辑

我在这篇帖子中说过:http://bbs.itheima.com/thread-37251-1-1.html

Hibernate3.6既不是基于子类的动态代理,也不是基于接口的动态代理,那么它的懒加载机制(Load)是怎么通过代理对象获取的??或者是不通过代理对象,那是用什么实现的。。。
作者: 黄锦成    时间: 2013-1-28 23:04
你查看一下,lib中有没有用CGLIB
作者: 彭昆    时间: 2013-1-29 22:14
黄锦成 发表于 2013-1-28 23:04
你查看一下,lib中有没有用CGLIB

我查到了,cglib不是必须的,不加入也可以。现在Hibernate是基于JavaSSist的,这个是基于字节码动态代理。基于子类的cglib动态代理必须要求domian是非final的,但现在没有这要求了,fianl修饰的对象只是没有懒加载load了,他直接通过连接查询把依赖的对象给查出来了。。。
作者: 黄锦成    时间: 2013-1-29 22:27
彭昆 发表于 2013-1-29 22:14
我查到了,cglib不是必须的,不加入也可以。现在Hibernate是基于JavaSSist的,这个是基于字节码动态代理 ...

学习了,用过hibernate,知道延迟加载使用了代理,但一直还以为是Proxy或CGLIB实现的。没想到是用其他的




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2