failed to lazily initialize a collection of role,could not initialize proxy – no Session

问题出在:could not initialize proxy – no Session at  无法初始化代理-没有session。  

证明获取不到session,访问action的时候报了500错误,

配置懒加载一定要在web.xml开头配置代码,放在其他位置无效。

 

解决办法:这个是 由于web.xml没有配置懒加载。名词解析:延迟加载,也叫懒加载,它是Hibernate为提高程序执行效率而提供的一种机制,即只有真正使用该对象的数据时才会创建。

在web.xml里面配置懒加载,代码如下:

<span style="color:#f8f8d4">  <span style="color:#93a1a1"><!-- 配置过滤器,解决hibernate延迟加载问题 --></span>  

<span style="color:#f92659"><filter></span>  

<span style="color:#f92659"><filter-name></span><span style="color:#66d9ef">openSessionInView</span><span style="color:#f92659"></filter-name></span> 

 <span style="color:#f92659"><filter-class></span><span style="color:#66d9ef">org.springframework.orm.hibernate5.support.OpenSessionInViewFilter</span><span style="color:#f92659"></filter-class></span>  

<span style="color:#f92659"></filter></span>  

<span style="color:#f92659"><filter-mapping></span>  <span style="color:#f92659"><filter-name></span><span style="color:#66d9ef">openSessionInView</span><span style="color:#f92659"></filter-name></span>  <span style="color:#f92659"><url-pattern></span><span style="color:#66d9ef">/*</span><span style="color:#f92659"></url-pattern></span>  

<span style="color:#f92659"></filter-mapping></span></span>

最最最重要的一点是,其他博客都没有提到的,但是有必须要做的,配置懒加载一定要在web.xml开头配置代码。

我的web.xml配置如下:

这样即可完美解决。


来源于:

https://6iit.com/823