Hibernate.initialize(Obj)用法
来源:互联网 发布:win7允许程序访问网络 编辑:程序博客网 时间:2024/06/02 18:43
导读:
在使用hibernate进行持久化时,有时需要动态的改变对象的加载,比如在编辑页面里面lazy=true,而在浏览页面lazy=false,这样可以在需要lazy的地方才进行控制。而配置文件中Lazy属性是全局控制的,如何处理呢?
当元素或者元素的lazy属性为true时,load() or get() or find()加载这些对象时,Hibernate不会马上产生任何select语句,只是产生一个Obj代理类实例,只有在session没有关闭的情况下运行Obj.getXxx()时才会执行select语句从数据库加载对象,如果没有运行任何Obj.getXxx()方法,而session已经关闭,Obj已成游离状态,此时再运行Obj.getXxx()方法,Hibernate就会抛出"Could not initialize proxy - the owning Session was closeed"的异常,是说Obj代理类实例无法被初始化。然而想在Session关闭之前不调用Obj.getXxx()方法而关闭Session之后又要用,此时只要在Session关闭之前调用Hibernate.initialize(Obj)或者Hibernate.initialize(Obj.getXxx())即可,net.sf.hibernate.Hibernate类的initialize()静态方法用于在Session范围内显示初始化代理类实例。
在配置文件里面可以用lazy=true,在程序里面可以用强制加载的方法Hibernate.initialize(Object proxy) 方法强制加载这样就相当于动态改变为lazy=false。
但在使用时需要注意的一点是:其中的proxy是持久对象的关联对象属性,比如A实体,你要把A的关联实体B也检出,则要写Hibernate.initialize(a.b)。
本文转自
http://hi.baidu.com/beforedead/blog/item/c626b60fbbffa5efab6457f4.html
在使用hibernate进行持久化时,有时需要动态的改变对象的加载,比如在编辑页面里面lazy=true,而在浏览页面lazy=false,这样可以在需要lazy的地方才进行控制。而配置文件中Lazy属性是全局控制的,如何处理呢?
当元素或者元素的lazy属性为true时,load() or get() or find()加载这些对象时,Hibernate不会马上产生任何select语句,只是产生一个Obj代理类实例,只有在session没有关闭的情况下运行Obj.getXxx()时才会执行select语句从数据库加载对象,如果没有运行任何Obj.getXxx()方法,而session已经关闭,Obj已成游离状态,此时再运行Obj.getXxx()方法,Hibernate就会抛出"Could not initialize proxy - the owning Session was closeed"的异常,是说Obj代理类实例无法被初始化。然而想在Session关闭之前不调用Obj.getXxx()方法而关闭Session之后又要用,此时只要在Session关闭之前调用Hibernate.initialize(Obj)或者Hibernate.initialize(Obj.getXxx())即可,net.sf.hibernate.Hibernate类的initialize()静态方法用于在Session范围内显示初始化代理类实例。
在配置文件里面可以用lazy=true,在程序里面可以用强制加载的方法Hibernate.initialize(Object proxy) 方法强制加载这样就相当于动态改变为lazy=false。
但在使用时需要注意的一点是:其中的proxy是持久对象的关联对象属性,比如A实体,你要把A的关联实体B也检出,则要写Hibernate.initialize(a.b)。
本文转自
http://hi.baidu.com/beforedead/blog/item/c626b60fbbffa5efab6457f4.html
- Hibernate.initialize(Obj)用法
- Hibernate.initialize(Obj)用法
- Hibernate.initialize(Obj)用法
- Hibernate.initialize(Obj)用法
- Hibernate.initialize(Obj)用法
- Hibernate.initialize(Obj)用法
- Hibernate.initialize(Obj)用法
- Hibernate.initialize(Obj)用法
- Hibernate.initialize(Obj)用法
- Hibernate.initialize(Obj)用法
- Hibernate.initialize(Obj)用法
- Hibernate.initialize(Obj)用法
- Hibernate.initialize(Obj)用法
- Hibernate.initialize(Obj)用法
- hibernate之Hibernate.initialize(Obj)用法
- Hibernate.initialize(Object obj)
- Hibernate.initialize(obj)
- Hibernate.initialize(Obj)立即加载。
- CSV文件写入数据规则
- getHibernateTemplate().load could not initialize proxy
- 块元素
- JasperServer导出PDF报表中文问题解决方案
- 褚橙是如何用互联网营销颠覆橙子的?
- Hibernate.initialize(Obj)用法
- 谷歌浏览器审查元素http头部分析
- 幻世(OurDream)2D图形引擎使用教程6——使用纹理
- Spring MVC – How To Include JS Or CSS Files In A JSP Page
- 批量设置excel条件格式改变整行的填充色
- 操作系统原理——Dekker互斥算法详解
- abstract类和interface的区别(剽窃的)
- Java Socket实战之一 单线程通信
- MySql 动态行转列整理