请教webspher中hibernet的错误!

fbtdjs 2005-08-06 03:00:00
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.smarteam.bookPratise.kernel.model.bo.Book$$EnhancerByCGLIB$$cd06f92d.getBook_name(<generated>)
at Test1.main(Test1.java:43)
...全文
49 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
yingtju 2005-08-06
  • 打赏
  • 举报
回复
你的持久化类的hbm映射文件中,定义class的lazy属性值为true
而你又用session.load()加载持久化对象实例
在session.close()后你企图访问该实例的getXxx()才会报这样的错

问题关键在于lazy=true,调用load函数时返回的是持久化类的代理类的实例
且仅初始化了OID属性,如果session未close,调用getXxx,Hibernate会初始化
代理类实例,从数据库加载对象数据
而你在session.close()后企图加载,当然会报错

ps:分给的太少了吧,回答起来没动力阿

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧