Teacher类
private String teachId;
private List<Student> student;
public String getTeachId() {
return teachId;
} public void setTeachId(String teachId) {
this.teachId = teachId;
}        @OneToMany(cascade = {CascadeType.ALL}, mappedBy = "teacher", fetch = FetchType.LAZY)
public List<Student> getStudent() {
return student;
} public void setStudent(List<Student> student) {
this.student = student;
} Student类
private String stuId;
private Teacher teacher;
public String getStuId() {
return stuId;
}
public void setStuId(String stuId) {
this.stuId = stuId;
}        @ManyToOne(cascade={CascadeType.ALL})
        @JoinColumn(name="teachId",insertable = false, updatable = false)
public Teacher getTeacher() {
return teacher;
}
public void setTeacher(Teacher teacher) {
this.teacher = teacher;
}
插入数据的时候,Student表的teachId为空。要怎么做才能让两个表关联起来呢。大家帮帮忙~ 谢谢啦!

解决方案 »

  1.   

    你这样建表是没有问题的,虽然理论上应该是多对多的关系,但问题出在这里:
     @JoinColumn(name= "teachId ",insertable   =   false,   updatable   =   false) 
    哥哥啊,insertable=false表明关系主键不允许插入,也就是不允许建立关系,同样updatable是说关系不允许修改,你讲这两个值改为true,要是配置没有问题的话,就应该ok了
      

  2.   

    唉.... 看到这么多代码 就 Lia 了  、、、楼主 速度改     改了 回个帖子  然后 你的 关系 是不是 要改  要的情况下  3L  说的 比较清楚 没我 什么事情了  不过要点份 还是可以的撒
      

  3.   


    设成true了~ 也不行 那个字段还是为空。
      

  4.   

    光看这个一对多的配置应该没有问题,是不是什么entity啊其他的有问题,或者是你的代码有问题,hibernate的annotation不怎么熟悉,他默认的是每个字段都存入数据库的吗?  不需要加column注解吗?
      

  5.   


    昨天看了好久帖 终于弄好了~
    @OneToMany(cascade = {CascadeType.ALL}, fetch = FetchType.EAGER)
    @JoinColumn(name="INFOID")
    这里也改成这个就好了~