`
endual
  • 浏览: 3593676 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

hibernate one to many lazy 常见错误解决

阅读更多

解释一个关于Hibernate lazy的问题

2007-05-31 09:26作者:liulj出处:论坛整理责任编辑:卢林嘉

<!--广告-->
<!-- Please check block file -->
<!-- Please check block file -->

使用Hibernate时意外报错:

Exception in thread "main" org.hibernate.LazyInitializationException: could not initialize proxy - the owning Session was closed
 at org.hibernate.proxy.AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:53)
 at org.hibernate.proxy.AbstractLazyInitializer.getImplementation(AbstractLazyInitializer.java:84)
 at org.hibernate.proxy.CGLIBLazyInitializer.intercept(CGLIBLazyInitializer.java:134)
 at com.entry.database.bean.OaLoginLink$EnhancerByCGLIB$a418b18d.getName(<generated>)
 at test.Test.main(Test.java:145)

很是让我头痛,上网查看相关资料发现这样一个解决方式:

"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
集合(不包括数组)是可以延迟初始化的,意思是仅仅当应用程序需要访问时,才载入他们的值。
s = sessions.openSession();
User u = (User) s.find("from User u where u.name=?", userName,
Hibernate.STRING).get(0);
Map permissions = u.getPermissions();
s.connection().commit();
s.close();
Integer accessLevel = (Integer) permissions.get("accounts"); //Error!
因为在commit之前,permissions没有被用到,permission没有被初始化,而session被close了,导致permissions永远都无法load data.
解决办法:吧最后一行一道session被提交之前.
设置:
<set name="names" table="NAMES" lazy="true" order-by="name asc">
<key column="group_id"/>
<element column="NAME" type="string"/>
</set>

==================================

在做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代码:


 public TSysuser getUser(int userid) {

 if (this.getHibernateTemplate() == null) {
 System.out.println("error at there");
 return null;
 }

 TSysuser edituser= (TSysuser) getHibernateTemplate().load(TSysuser.class, new Integer(userid));

 System.out.println(edituser.getUsername());
 System.out.println(edituser.getDeptno());

 return edituser;
 }
 

如果删除上面的
java代码:
 System.out.println(edituser.getUsername());
 System.out.println(edituser.getDeptno());

在点击编号,修改时候就会出现错误:

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">
 


亲侧通过
分享到:
评论

相关推荐

    hibernate annotation 中文文档

    - **2.2.5.2 多对一(Many-to-one)**:使用 `@ManyToOne` 注解来定义多对一的关联关系。 - **2.2.5.3 集合类型**:使用 `@OneToMany` 或 `@ManyToMany` 来处理一对多或多对多的关系。 - **2.2.5.4 用 cascading ...

    hibernate-release-5.0.7.Final.zip官方

    &lt;one-to-many class="Order"/&gt; ``` ```java @Entity public class User { @Id private Long id; private String name; @Fetch(FetchMode.JOIN) @OneToMany(mappedBy = "user") private List&lt;Order&gt;...

    ssh框架面试题.pdf

    **类间关系**:Hibernate支持多种关系映射,如一对一、一对多、多对多,通过配置文件中的`many-to-one`、`one-to-many`、`many-to-many`等元素实现。 **缓存机制**: 1. **一级缓存**:默认开启,存在于Session内部...

    Java学习笔记-个人整理的

    {1.9.6}go-to}{33}{subsection.1.9.6} {1.9.7}\texttt {do-while}}{33}{subsection.1.9.7} {1.10}数组(array)}{34}{section.1.10} {1.10.1}数组变量的声明}{34}{subsection.1.10.1} {1.10.2}数组变量的初始化...

    实训商业源码-深蓝健身房瑜伽馆行业小程序V4.5.0全开源解密版-毕业设计.zip

    实训商业源码-深蓝健身房瑜伽馆行业小程序V4.5.0全开源解密版-毕业设计.zip

    毕业论文-Z-BlogPHP海盗导航主题模板-整站商业源码.zip

    毕业论文-Z-BlogPHP海盗导航主题模板-整站商业源码.zip

    基于pytorch实现中国交通警察指挥8种手势识别源码+数据集+模型+详细项目说明

    基于pytorch实现中国交通警察指挥8种手势识别源码+数据集+模型+详细项目说明,该项目是个人毕设项目,答辩评审分达到98分,代码都经过调试测试,确保可以运行!欢迎下载使用,可用于小白学习、进阶。该资源主要针对计算机、通信、人工智能、自动化等相关专业的学生、老师或从业者下载使用,亦可作为期末课程设计、课程大作业、毕业设计等。项目整体具有较高的学习借鉴价值!基础能力强的可以在此基础上修改调整,以实现不同的功能。 基于pytorch实现中国交通警察指挥8种手势识别源码+数据集+模型+详细项目说明基于pytorch实现中国交通警察指挥8种手势识别源码+数据集+模型+详细项目说明基于pytorch实现中国交通警察指挥8种手势识别源码+数据集+模型+详细项目说明基于pytorch实现中国交通警察指挥8种手势识别源码+数据集+模型+详细项目说明基于pytorch实现中国交通警察指挥8种手势识别源码+数据集+模型+详细项目说明基于pytorch实现中国交通警察指挥8种手势识别源码+数据集+模型+详细项目说明基于pytorch实现中国交通警察指挥8种手势识别源码+数据集+模型+详细项目说明基于pytorch实现中国交通警察指挥8种手势识别源码+数据集+模型+详细项目说明基于pytorch实现中国交通警察指挥8种手势识别源码+数据集+模型+详细项目说明基于pytorch实现中国交通警察指挥8种手势识别源码+数据集+模型+详细项目说明基于pytorch实现中国交通警察指挥8种手势识别源码+数据集+模型+详细项目说明基于pytorch实现中国交通警察指挥8种手势识别源码+数据集+模型+详细项目说明基于pytorch实现中国交通警察指挥8种手势识别源码+数据集+模型+详细项目说明基于pytorch实现中国交通警察指挥8种手势识别源码+数据集+模型+详细项目说明基于pytorch实现中国交通警察指

    实训商业源码-在线考试系统源码 学生教师用-毕业设计.zip

    实训商业源码-在线考试系统源码 学生教师用-毕业设计.zip

    实训商业源码-自采集壁纸源码小韩美化版-毕业设计.zip

    实训商业源码-自采集壁纸源码小韩美化版-毕业设计.zip

    ANSYS nCode DeaignLife 高级疲劳分析技术.pdf

    ANSYS nCode DeaignLife 高级疲劳分析技术.pdf

    毕业论文-活动报名 4.1.1+年卡 1.1.3-整站商业源码.zip

    毕业论文-活动报名 4.1.1+年卡 1.1.3-整站商业源码.zip

    BIM和PLM技术在市政工程三维设计中的应用.pdf

    BIM和PLM技术在市政工程三维设计中的应用.pdf

    【Python网络爬虫】反爬虫绕过技术汇总:请求头伪装、动态页面处理与验证码破解策略

    内容概要:本文档详细介绍了Python反爬虫技术的各种应对策略,包括基础和高级方法。基础部分涵盖User-Agent伪装、IP代理池、请求频率控制等,其中涉及使用fake_useragent库随机生成User-Agent、设置HTTP/HTTPS代理、通过随机延时模拟正常访问行为。动态页面处理方面,讲解了Selenium和Pyppeteer两种自动化工具的使用,可以用于加载并获取JavaScript渲染后的网页内容。对于验证码问题,提供了OCR识别简单验证码、Selenium模拟滑块验证码操作以及利用第三方平台破解复杂验证码的方法。登录态维持章节介绍了如何通过Session对象保持登录状态,并且演示了Cookie的保存与读取。数据加密对抗部分探讨了JavaScript逆向工程和WebAssembly破解技巧,如使用PyExecJS执行解密脚本。最后,高级反爬绕过策略中提到了WebSocket数据抓取和字体反爬解析,确保能够从各种复杂的网络环境中获取所需数据。 适合人群:有一定Python编程经验,从事数据采集工作的开发人员。 使用场景及目标:①帮助开发者理解并掌握多种反爬虫绕过技术;②为实际项目中的数据抓取任务提供有效的解决方案;③提高爬虫程序的成功率和稳定性。 其他说明:在学习过程中,建议结合具体案例进行实践,同时注意遵守网站的robots协议及相关法律法规,合法合规地进行数据采集活动。

    毕业论文-叮咚-外卖餐饮小程序6.1.5 前端+后端-整站商业源码.zip

    毕业论文-叮咚-外卖餐饮小程序6.1.5 前端+后端-整站商业源码.zip

    实训商业源码-抢购秒杀系统V1.0.2 安装更新包-毕业设计.zip

    实训商业源码-抢购秒杀系统V1.0.2 安装更新包-毕业设计.zip

    实训商业源码-智答-更好用的语音问答6.0.4-毕业设计.zip

    实训商业源码-智答-更好用的语音问答6.0.4-毕业设计.zip

    毕业论文-发卡-整站商业源码.zip

    毕业论文-发卡-整站商业源码.zip

    Ayla NetWorks:全面探索物联网数据安全和数据隐私.pdf

    Ayla NetWorks:全面探索物联网数据安全和数据隐私.pdf

    毕业论文-活动报名小程序-整站商业源码.zip

    毕业论文-活动报名小程序-整站商业源码.zip

    jquery-1.11.0.min.js(jQuery下载)

    jquery-1.11.0.min.js(jQuery下载)

Global site tag (gtag.js) - Google Analytics