一个关于Hibernate lazy的问题 - 编程入门网
一个关于Hibernate lazy的问题时间:2009-12-07使用Hibernate时意外报错:
很是让我头痛,上网查看相关资料发现这样一个解决方式: "org.hibernate.LazyInitializationException: could not initialize proxy"延迟抓取出的错,hb3对many-to-one的默认处理是lazy = "proxy",没有搞懂到底怎么回事,把所有many-to-one,one-to-one都加上lazy="false"... 这个方法理论上没错,但是会让人产生误解,使人以为只是修改<set>中的lazy值,照做后程序依然会报错,看看下面的文章也许就明白了(注意最后一行红色标记)! lazy initialization 集合(不包括数组)是可以延迟初始化的,意思是仅仅当应用程序需要访问时,才载入他们的值。
因为在commit之前,permissions没有被用到,permission没有被初始化,而session被close了,导致permissions永远都无法load data. 解决办法:吧最后一行一道session被提交之前. 设置:
================================== 在做Spring1.2 + Hibernate 3 + struts demo时候遇到一个问题,编辑用户数据时候 用com.jeedev.service.dao.hibernate.UserHibernateDao 中 public TSysuser getUser(int userid) { } 方法,总是不能正常显示编辑数据。具体表现为: 参考 com.jeedev.service.dao.hibernate.UserHibernateDao 第32-45行 java代码:
如果删除上面的 java代码:
在点击编号,修改时候就会出现错误: 2005-10-27 15:35:59,245 ERROR [org.hibernate.LazyInitializationException] - could not initialize proxy - the owning Session was closed org.hibernate.LazyInitializationException: could not initialize proxy - the owning Session was closed 经过在javaeye论坛大家一致认为 是hibernate lazy的原因 在WEB级别应用时候,会出现意想不到的lazy错误,解决方法就是 设置 lazy="false" 例: <hibernate-mapping> <class name="com.jeedev.hb.TSysuser" table="t_sysuser" lazy="false"> |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |