A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 彭昆 中级黑马   /  2013-1-28 22:57  /  1386 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 彭昆 于 2013-1-29 22:16 编辑

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

Hibernate3.6既不是基于子类的动态代理,也不是基于接口的动态代理,那么它的懒加载机制(Load)是怎么通过代理对象获取的??或者是不通过代理对象,那是用什么实现的。。。

3 个回复

倒序浏览
你查看一下,lib中有没有用CGLIB
回复 使用道具 举报
黄锦成 发表于 2013-1-28 23:04
你查看一下,lib中有没有用CGLIB

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

学习了,用过hibernate,知道延迟加载使用了代理,但一直还以为是Proxy或CGLIB实现的。没想到是用其他的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马