这样你是拿不到的,因为这时候session已经关闭了,主要由于你的one-to-many中lazy设置为true,如果确实需要延迟加载,可以在session没关闭前,调用Hibernate.initialize(pojo.getChildren());或者pojo.getChildren().siz(),让集合代理类初始化,并加载关联对象集合,这一动作也要在session关闭之前操作。

解决方案 »

  1.   

    还有可以在查询的时候采用fetch的方式,这样也可以把相关联的类一并加载。下面是参考原文:
    还有,一个"fetch"连接允许仅仅使用一个选择语句就将相关联的对象或一组值的集合随着他们的父对象的初始化而被初始化,这种方法在使用到集合的情况下尤其有用,对于关联和集合来说,它有效的代替了映射文件中的外联接 与延迟声明(lazy declarations). 查看 第 20.1 节 “ 抓取策略(Fetching strategies) ” 以获得等多的信息。
      

  2.   

    加一个OpenSessionInView过滤器就ok了
      

  3.   

    我想你用的Hibernate 3版本吧看看这篇文章是否有帮助http://blog.csdn.net/bluemeteor/archive/2005/03/12/317992.aspx