关于延迟加载(lazy)和强制加载(Hibernate.initialize(Object proxy) )

在使用hibernate进行持久化时,有时需要动态的改变对象的加载,比如在编辑页面里面lazy=true,而在浏览页面lazy=false,这样可以在需要lazy的地方才进行控制。而配置文件中Lazy属性是全局控制的,如何处理呢?
        在配置文件里面可以用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());

你可能感兴趣的:(Hibernate,.net,Blog)