浏览 2152 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-10-31
使用hibernate的延迟加载 也就是懒加载,势必遇到集合的加载问题 有时候懒加载的集合对象需要initialize()来得到
但是使用了hibernate的api
本人试想苛求一下,不许用hibernate的api减少侵入性,不使用initialize()如何?
这里本人目前找到了一个可行的方案:
比如可以对集合对象mySet
mySet.iterator();
这样的话 代理类在iterator();中会调用一个read()方法 进而初始化了mySet
目前测试可行,不知道各位高人有其他更好的解决方案吗?
欢迎智者指点~ 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-11-02
楼主这个是1 to N数据加载方式,解决绑定hibernate的问题。
我也很久没玩hibernate了。我记得我当时就是比如这样:user.getBlogs();数据就已经加载了。 但是我有一个比较特殊的延迟加载: TimePoint{ OnePointRecord; TwoPointRecord; ThreePointRecord; } TimePoint与其中的三个PointRecord是1 to 1的关系。 但是,我每次只需要2个PointRecord; 比如我需要的数据组合是:OnePointRecord + ThreePointRecord 和 TwoPointRecord + ThreePointRecord。 由于是1 to 1,使用延迟加载就会出现一个性能问题。但是我的数据组合又是不确定的。 现在唯一想到的就是不用延迟加载。反正1 to 1,全查出来了。 因为我希望执行的就是一条SQL语句。 |
|
返回顶楼 | |
发表时间:2008-11-02
哎。突然想到了。
TimePoint建立两个映射。。。 。。。。。突然想起来了。不好意思。不好意思。 ---------- Append 2008/11/2 ------------- 貌似这样不太好看。 因为我还需要编写两个类。 不知道在查询时如何设置动态加载,也就是一个SQL查出来,1 to 1? |
|
返回顶楼 | |