在使用hibernate进行持久化时,有时需要动态的改变对象的加载,比如在编辑页面里面lazy=true,而在浏览页面lazy=false,这样可以在需要lazy的地方才进行控制。而配置文件中Lazy属性是全局控制的,如何处理呢?
在配置文件里面可以用lazy=true,在程序里面可以用强制加载的方法Hibernate.initialize(Object proxy) 方法强制加载这样就相当于动态改变为lazy=false。
但在使用时需要注意的一点是:其中的proxy是持久对象的关联对象属性,比如A实体,你要把A的关联实体B也检出,则要写Hibernate.initialize(a.b)。
转载网址
例子:
在配置文件里面可以用lazy=true,在程序里面可以用强制加载的方法Hibernate.initialize(Object proxy) 方法强制加载这样就相当于动态改变为lazy=false。
但在使用时需要注意的一点是:其中的proxy是持久对象的关联对象属性,比如A实体,你要把A的关联实体B也检出,则要写Hibernate.initialize(a.b)。
转载网址
例子:
// 强制加载 Hibernate.initialize(user); Hibernate.initialize(user.getRole()); Hibernate.initialize(user.getRole().getFunctions());
评论
wilddonkey
2008-06-18
回复
我测试的发现即使改成 lazy="true"也会自动加载,反而 去掉这个设置用默认值(默认是true)就不会自动加载了。我用的是3.0,你测试一下有没有 这个问题
发表评论
- 浏览: 23144 次
- 性别:


- 详细资料
搜索本博客
我的相册
ss
共 8 张
共 8 张
最近加入圈子
最新评论
-
关于延迟加载(lazy)和强 ...
执行上面代码的时候报了一个session已经关闭的错误~ 有解决办法吗?
-- by angushj -
关于延迟加载(lazy)和强 ...
我测试的发现即使改成 lazy="true"也会自动加载,反而 去掉这个设置用默 ...
-- by wilddonkey -
FCKeditor编辑器的最简单 ...
8) :cry: :wink: :roll: ...
-- by xmf483 -
XP如何解决开发过程中的风 ...
XP -- 极限编程的意思
-- by kenbli -
XP如何解决开发过程中的风 ...
XP是什么?
-- by senbao18






评论排行榜