failed to lazily initialize a collection of role: com.xxxx.xxxx- no session or session was closed 
这个错怎么解决? 
是在一对多映射,从一的方面取出关联的多的数据时报的错误,那位高手能给仔细讲解,感激涕零! 

解决方案 »

  1.   

    应该是因为你把Session关掉了,你是用了关联中的延迟加载,在页面延迟加载之前,你的Session已经Close了。
      

  2.   

    如果用了同步加载数据,那你的性能追求不高,Hibernate的Session是单例模式,你都同步加载了,用不着关Session。
      

  3.   

    1 把 lazy设置为 false,不过 性能有影响2 在session里面,用空代码调用一次你的那个role的内容,然后再返回,数据就会读取进来了!
      

  4.   

    求助 !! 我也遇到这个问题了,请问 空代码调用是真么意思。 我两个对象之间用的是Set 进行关联起来的。 我实在给一个托管对象更新的时候发生这个问题的。 主要是我那个托管对象是级联关系的。 求助ing
      

  5.   

    修改与之关联的.hbm文件中的 lazy设为false 没有的加上
      

  6.   

    <filter>
    <filter-name>hibernateFilter</filter-name>
    <filter-class>
    org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
    </filter> <filter-mapping>
    <filter-name>hibernateFilter</filter-name>
    <url-pattern>*.action</url-pattern>
    </filter-mapping>


    <!-- web.xml 中 的 以下 mapping 前 加入 上述 代码-->
    <filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>/*</url-pattern>
    </filter-mapping>