<table width="100%"  border="1" cellpadding="0" cellspacing="0">
        <c:forEach items="${quaeres}" var="q"> 
          <tr> 
          <td align="center">${q.id} </td> 
          <td align="left">${q.title} </td> 
          </tr> 
           <c:if test="${q.sxylwQuaerelists != null}">                 <c:if test="${q.typeset==0}"> 
                    <tr> 
                         <td>&nbsp; </td> 
                         <td> 
                         <!--运行到这里就出错了 
                              但是上一个判断q.sxylwQuaerelists != null已经通过 
                              q.sxylwQuaerelists确实不为空 
                              我配置lazy策略为false 
                          --> 
                         <c:forEach items="${q.sxylwQuaerelists}"  var="o">                               <c:if test="${q.ntype==0}"> 
                                   <input type="radio" id="${q.id}${o.id}" name="${q.id}" value="${o.id}" />${o.noption}&nbsp;&nbsp; 
                              </c:if>                           </c:forEach> 
        
        
                         </td> 
                     </tr> 
                </c:if>            </c:if>         </c:forEach> 
        
</table>       
以上是从查出来的 SxylwQuaere(List)对象中循环输出时 再将对象中的 属性sxylwQuaerelists(set集合)循环输出 lazy策略为false程序出错后我将代码改为(主要想查看q.sxylwQuaerelists 的大小和是否为空):
<% 
List <SxylwQuaere> list = (List <SxylwQuaere>)request.getAttribute("quaeres"); SxylwQuaere sq = list.get(1); Set <SxylwQuaerelist> ol = sq.getSxylwQuaerelists(); out.println(ol==null); //输出false  out.println(ol.size()); //这句话出错了 
        
%> 
可是这样的结果让我更加的郁闷   还望那位高手出面解决  感激不尽!!!!!!

解决方案 »

  1.   

    org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: cn.sxylw.domain.SxylwQuaere.sxylwQuaerelists, no session or session was closed
      

  2.   

    lazy  配错地方了  郁闷啊    不好意思 让大家见笑了 
    但是 那个改后的程序  为什么在out.println(ol.size())出错了呢  还是没有弄明白