本帖最后由 myfjdthink 于 2011-11-26 12:00:45 编辑

解决方案 »

  1.   

    Student的id属性变成了ClassRoom的对象。 不明白为什么。面向对象的思想楼主还欠缺。
      

  2.   

    这就是为什么hibernate为什么存在延迟加载
      

  3.   

    新建一个ClassRoom对象,然后把id存入该ClassRoom对象,在把ClassRoom对象存入Student。可以。
    建议你学着正向配置,有利于理解实体类如何相互关联的(就是一楼大牛说的面向对象的思想)
      

  4.   

    这样做出错了:
    2011-11-26 17:10:23 org.apache.catalina.core.StandardWrapperValve invoke
    严重: Servlet.service() for servlet default threw exception
    java.lang.IllegalStateException
      

  5.   

    首先确定那个ClassRoom的id必须已经存在,其次你应该贴点代码
      

  6.   

    hibernate的cascade问题么?
    你网上搜搜这个关键字及其用法
      

  7.   

    很明显,student是依赖classroom的。也就是说要保存student,必须先保存classromm。get出classroom对象,set进student,保存
      

  8.   

    这样做问题解决了,其实我的数据库还有其他的问题,我在使用hibernate的逆向工程的时候设置了increment自增,然后主键又不是一个自增的id,导致在插入数据时,hibernate会自动先查询最大的主键,然后+1 插入,问题就出现了。谢谢各位了。
    顺便提一下,觉得这个问题很简单的大大们,你们在说这个问题很简单的时候顺便说一下解决方法好吗?
    我知道这个问题简单,但是菜鸟不知道你就说一下答案嘛。
    光说简单有什么用?