前段时间在项目中出现以下错误:
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>
795

被折叠的 条评论
为什么被折叠?



