我创建了三个表实体,学生,学院和地址。当我尝试将数据插入地址表时,我只在数据库中的地址表中获得一个额外的列(student_STUDENT_ID)。请查找附带的截图。我无法弄清楚为什么这个领域即将到来?可以删除吗?下面是映射这三个实体的代码。
地址表 -
@ManyToOne
private Student student;
//setters and getters
学生表 -
@OneToOne(cascade=CascadeType.ALL,fetch=FetchType.EAGER)
@JoinColumn(name="COLLEGE_ID")
private College college;
//getters and setters
@OneToMany(cascade=CascadeType.ALL)
@JoinColumn(name="STUDENT_ID")
private Set<Address> addr;
//getters and setters
学院表 -
@OneToOne(mappedBy="college",cascade=CascadeType.ALL)
private Student student;
答案 0 :(得分:1)
尝试将@JoinColumn移动到地址类
@ManyToOne
@JoinColumn(name = "STUDENT_ID")
private Student student;
然后在您的学生表中,将mappedBy添加到@OneToMany
@OneToMany(cascade=CascadeType.ALL, mappedBy="student")
private Set<Address> addr;
答案 1 :(得分:0)
真正的配置应该是这样的 -
地址类 -
@ManyToOne
@JoinColumn(name="STUDENT_ID")
private Student student;
//getters and setters
学生班 -
@OneToMany(cascade=CascadeType.ALL, mappedBy="student")
private Set<Address> addr;
//getters and setters
大学班没有变化。