被这个问题卡住了两天,去CSDN问了,又去看了张龙的视频,终于解决了。
其实这个很简单,只是在使用Myeclipse进行hibernate逆向工程配置时,配置错了,导致插入不成功的问题。
这个错误的配置是:数据库表中没有设置id自增主键,在hibernate逆向工程配置时配置了increment属性!
进入正题,Student中含有外键,如:
public ClassRoom {
int id
String name
}
public Student{
int id //参照ClassRoom中的id。
String name
String mark
}
Student中的id就是参照ClassRoom类的外键,在Myeclipse中使用逆向工程生成DAO的时候,Student类是这样的:
public Student(){
ClassRoom classroom //变成了对象
String name
String mark
}
Student中的id变成了一个ClassRoom的对象,所以在插入数据时应该先根据id在数据库中查询获得一个ClassRoom对象,再把这个对象set进Student对象,然后保存Student对象到数据库即可。