could not initialize proxy - no Session

xiajunsuc 2010-05-26 10:53:50
08:37:15,203 ERROR LazyInitializationException:19 - could not initialize proxy - no Session
org.hibernate.LazyInitializationException: could not initialize proxy - no Session
at org.hibernate.proxy.AbstractLazyInitializer.initialize(AbstractLazyInitializer.java:57)
at org.hibernate.proxy.AbstractLazyInitializer.getImplementation(AbstractLazyInitializer.java:111)
at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:150)
at com.bjsxt.oa.model.Orgnization$$EnhancerByCGLIB$$8b056ba1.getParent(<generated>)
at com.bjsxt.oa.web.actions.OrgAction.execute(OrgAction.java:64)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:404)
at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:267)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:229)
at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:221)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)


package com.bjsxt.oa.model;
import java.util.Set;
public class Orgnization {
private int id;
private String name;
private String sn;
private String description;
private Orgnization parent;
private Set children;
.....
}

hibernate-mapping>
<class table="t_orgnization" name="com.bjsxt.oa.model.Orgnization">
<id name="id">
<generator class="native"/>
</id>
<property name="name"/>
<property name="sn"/>
<property name="description"/>

<many-to-one column="pid" name="parent" />
<set lazy="false" inverse="true" name="children">
<key column="pid"/>
<one-to-many class="com.bjsxt.oa.model.Orgnization" />
</set>
</class>
</hibernate-mapping>



if(parentId != 0){
Orgnization org = orgManager.findOrg(parentId);
Orgnization parent = org.getParent();(执行这句开始出错)
if(parent != null){
ppid = parent.getId();
}
}
request.put("ppid", ppid);
...全文
233 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
ycnanevol 2010-05-27
  • 打赏
  • 举报
回复
把你的web.xml配置发一遍
xiajunsuc 2010-05-27
  • 打赏
  • 举报
回复
有人会吗
redlotus_lyn 2010-05-26
  • 打赏
  • 举报
回复
该SQL即可:

from A表 a left join fetch a.Orgnization对象在A表中变量名
xiajunsuc 2010-05-26
  • 打赏
  • 举报
回复
我在web.xml里配置opensessionInViewFilter了,也不行
ycnanevol 2010-05-26
  • 打赏
  • 举报
回复
在web.xml里配置opensessionInViewFilter

<filter>
<filter-name>OpenSessionInViewFilter</filter-name>
<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
<init-param>
<param-name>flushMode</param-name>
<param-value>AUTO</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>OpenSessionInViewFilter</filter-name>
<servlet-name>action</servlet-name>
</filter-mapping>
xiajunsuc 2010-05-26
  • 打赏
  • 举报
回复
那位大哥会呀
xiajunsuc 2010-05-26
  • 打赏
  • 举报
回复
用了spring
ycnanevol 2010-05-26
  • 打赏
  • 举报
回复
实在不行,你就把关联的对象一并查出来呗..
ycnanevol 2010-05-26
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 xiajunsuc 的回复:]

我在web.xml里配置opensessionInViewFilter了,也不行
[/Quote]

你可用了spring?
killercwf1 2010-05-26
  • 打赏
  • 举报
回复
<!-- 解决懒加载关闭session问题 -->
<filter>
<filter-name>openSessionInView</filter-name>
<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
<init-param>
<param-name>sessionFactoryBeanName</param-name>
<param-value>sessionFactory</param-value>
</init-param>
</filter>
hoojo 2010-05-26
  • 打赏
  • 举报
回复
开延迟加载就添加这个过滤器,否则是不需要用过滤器的
[Quote=引用 2 楼 ycnanevol 的回复:]
在web.xml里配置opensessionInViewFilter

XML code

<filter>
<filter-name>OpenSessionInViewFilter</filter-name>
<filter-class>org.springframework.orm.hibernate3.support.OpenSession……
[/Quote]
Jay_xiaolei 2010-05-26
  • 打赏
  • 举报
回复
将lazy设置为false
codolio 2010-05-26
  • 打赏
  • 举报
回复
依楼主的异常看,还应该是延迟加载的问题。Hibernate在默认情况下对集合、依赖的对象等会进行延迟加载。Orgnization org = orgManager.findOrg(parentId);在获取org对象后,与之关联的session关闭,(不过现在看不出是何原因)。Orgnization parent = org.getParent();在试图获取parent时,因与之关联的session关闭,导致无法延迟加载parent对象。
建议楼主先将<many-to-one/>的lazy属性设置为false,再看看会出现什么状况。
本项目是作者当时花费了3个多月的时间完成的.在此拿出来给大家分享,请珍惜作者的劳动成果,用心研读! JEEBBS最新版本采用hibernate3+spring mvc+spring3+freemarker技术架构,重新设计了jeebbs,重新架构后的JEEBBS性能得到了很大的提升,功能相比jeebbs v1.0也丰富了许多。 jeebbsV4.0功能列表 1、论坛APP 2、登录更改shiro登录认证以及记住我 3、在线人数、时长统计 4、提供用户接口、其他系统用户接口调用设置以及接口管理(可与jeecms系列软件无缝对接实现单点登录) 5、用户自定义字段 6、禁用ip、id发帖、回帖 7、注册成功自动登录 8、设置在线活跃度等级 9、手机模板方案设置 10、最近登录过(三天,一周、一个月、三个月、半年)查询 11、类似微信团队号(与用户沟通账户以及推送系统消息) 12、QQ登录 jeebbsV4.0修复以及完善部分 1.权限的访问的地址链接 2.图片太大显示不全问题 3.会员组设置附件上线没有用以及其他相关设置无效 4.附件上传经常上传不了 5.发帖文字内容不能居中、居左、居右 编辑器字体、大小、插入图片、排序列表无效、左浮动、右浮动 6.用户自定义头像错误 7.注册如果发送邮件激活的方式出错(返回页面错误org.hibernate.LazyInitializationException: could not initialize proxy - no Session) 8.禁止用户后不允许登录、发帖、回帖等 9.后台会员搜索中文名搜索乱码 10.注册会员的时候提示邮箱的格式不对 11.登录设置邮箱密码文本框改成密码框
JEEBBS最新版本采用hibernate3+spring mvc+spring3+freemarker技术架构,重新设计了jeebbs,重新架构后的JEEBBS性能得到了很大的提升,功能相比jeebbs v1.0也丰富了许多。 jeebbsV4.0功能列表 1、论坛APP 2、登录更改shiro登录认证以及记住我 3、在线人数、时长统计 4、提供用户接口、其他系统用户接口调用设置以及接口管理(可与jeecms系列软件无缝对接实现单点登录) 5、用户自定义字段 6、禁用ip、id发帖、回帖 7、注册成功自动登录 8、设置在线活跃度等级 9、手机模板方案设置 10、最近登录过(三天,一周、一个月、三个月、半年)查询 11、类似微信团队号(与用户沟通账户以及推送系统消息) 12、QQ登录 jeebbsV4.0修复以及完善部分 1.权限的访问的地址链接 2.图片太大显示不全问题 3.会员组设置附件上线没有用以及其他相关设置无效 4.附件上传经常上传不了 5.发帖文字内容不能居中、居左、居右 编辑器字体、大小、插入图片、排序列表无效、左浮动、右浮动 6.用户自定义头像错误 7.注册如果发送邮件激活的方式出错(返回页面错误org.hibernate.LazyInitializationException: could not initialize proxy - no Session) 8.禁止用户后不允许登录、发帖、回帖等 9.后台会员搜索中文名搜索乱码 10.注册会员的时候提示邮箱的格式不对 11.登录设置邮箱密码文本框改成密码框

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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