日期:2014-05-17  浏览次数:20713 次

hibernate 外键 对象 保存问题
数据库里有两个表,其中一个表中的字段是参照另一个表中某一字段的外键。
例如:

Java code

public   ClassRoom   { 
    int   id     
    String   name 
      
} 

public   Student{ 
    int   id     //参照ClassRoom中的id。
    String   name 
    String   mark
}

Student中的id字段就是参照ClassRoom中的id。
在Myeclipse中使用逆向工程生成DAO的时候,Student类是这样的:
Java code

public  Student(){ 
   ClassRoom   classroom //变成了对象
    String   name 
    String   mark
}


Student的id属性变成了ClassRoom的对象。 不明白为什么。
现在我要保存Student信息,从前台传过来了id name 和mark,要怎么保存到Student中呢?
以前没有外键时是用id name mark三个属性新建一个Student对象保存进去即可.
但是现在Student类的id属性变成了ClassRoom的一个对象.该怎么操作呢.
是新建一个ClassRoom对象,然后把id存入该ClassRoom对象,在把ClassRoom对象存入Student??

------解决方案--------------------
新建一个ClassRoom对象,然后把id存入该ClassRoom对象,在把ClassRoom对象存入Student。可以。
建议你学着正向配置,有利于理解实体类如何相互关联的(就是一楼大牛说的面向对象的思想)
------解决方案--------------------
首先确定那个ClassRoom的id必须已经存在,其次你应该贴点代码
探讨
这样做出错了:
2011-11-26 17:10:23 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet default threw exception
java.lang.IllegalStateException


引用:
……

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