自己解决了,原因是Teacher的xml中<set name="students" table="students" inverse="true"
cascade="all">的inverse设置了true,设置成false就可以了

解决方案 »

  1.   

    我资料上看到的是当inverse设置为true时不做为主控方,子类才能自动获取父类id,我这里为什么要设置成false才行。
      

  2.   

    false是默认值啊!!
    标记了集合作为双向关联关系中的方向一端.故..................
      

  3.   

    具有inverse="false"标记的大型Hibernate bag效率是相当低的,应该尽量避免。Hibernate无法创建,删除和更新它的单个记录, 因为他们没有关键字来识别单个记录。