看样子你不用输出department的信息,你的department中的与employee相关的set 的cascade设为none

解决方案 »

  1.   

    楼主的hql好像和延迟加载关系不大。另外,你在Department的employee的集合属性中是否设置了inverse=true?
      

  2.   

    to:dreamover OpenSessionInViewFilter是应用与spring之上的,我的是struts1.1。谢谢。to:angelseyes Department与Employe在我这里没有必要设置cascade。
    我只要读的时候能显示就可有了。to:tonyyl 我是单向的关联的,只在Employee一端设置了集合关系。在Department中没有映射,就谈不上主控端、被控端了。
      

  3.   

    谁说用OpenSessionInViewFilter一定要用spring???
      

  4.   

    如果是单向关联,你的many-to-one应该设置成lazy=true,因为当你取Employee对象时,外键会以实例形式返回,so,你from Employee e,你就from Department d 了,而你的d里再设置其他的关联,就会出问题。
      

  5.   

    首先感谢几位的关注。
    to :dreamover 我google了一些资料看,都提到了spring,而我从未用过spring。所以就以为时是spring里的东东了。
    to :tonyyl Department里没有设置其他的关联,都是值类型的(Integer、String、Date)。我尝试在Employee里设置outer-join="true",似乎可以,但是还是不太理解这个配置的作用。
      

  6.   

    大体是这么几步
    一:
    写一个filter,在上面给出的网页中有public class HibernateSessionFilter implements Filter{
    }二:
    在web.xml中配置这面这个filter,上面网页中也有三:在你原来程序中获取session的地方,写成
    session = sessionFactory.getCurrentSession();