您的位置:首页 > 其它

Hibernate3错误:could not initialize proxy – no Session的解决办法

2012-08-29 16:20 399 查看
前段时间在项目中出现以下错误:
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)


网上查了很多文章,说是因为hibernate的延迟加载问题。解决方法是:
<many -to-one>   和 <set> 中设置 lazy="false"
</set></many>


但操作中发现,这样会导致性能的大幅度下降,由于项目的关联的表格比较多,造成没刷新一次要执行非常多的SQL语句。

由于项目采用的ssh框架,因此使用spring的OpenSessionInViewFilter过滤器,重新测试下,性能提升很多。如果采用ssh,出现以上问题,可以加上这个过滤器。
<filter>
</filter><filter -name>openSessionInViewFilter</filter>
<filter -class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter>

<filter -mapping>
</filter><filter -name>openSessionInViewFilter</filter>
<url -pattern>/*</url>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐