【发布时间】:2020-04-21 14:28:53
【问题描述】:
在我的项目中,我有两个类:School 和 Teacher。一所学校可以分配多位教师。到目前为止,这是我的代码:
@Entity
@Table(name = "schools", uniqueConstraints = {
@UniqueConstraint(columnNames = {
"name"
}})
public class School {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
...
@OneToMany(fetch = FetchType.LAZY)
@JoinTable(name = "teachers",
joinColumns = @JoinColumn(name = "school_id"),
inverseJoinColumns = @JoinColumn(name = "teacher_id"))
private Set<Teacher> teachersList = new HashSet<>();
另外一个类如下:
@Entity
@Table(name = "teachers", uniqueConstraints = {
@UniqueConstraint(columnNames = {
"id"
})
})
public class Teacher {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
...
现在,当我尝试构建这个项目时,我收到了错误:
org.hibernate.MappingException: Foreign key (FK4hetjkgnpo354f7uwax5aewc0:teachers
[teacher_id])) must have same number of columns as the
referenced primary key (teachers [school_id,teacher_id])
我迷路了。我到底错过了什么?谢谢!
【问题讨论】:
-
teachers表是否有school_id列?如果是这样:Teacher-class 是否有对应的School-字段映射为@ManyToOne? -
嗯,教师没有 schoold_id。此外,Teacher 类还没有任何对应的 School-field。我怎样才能申报所有这些缺失的数据?非常感谢您的帮助!
标签: java jpa foreign-keys mapping