我正在尝试使用 play framework 使用 JPA 和 MYSQL 创建我的数据库,但是在映射 @oneToMany 时出现以下错误
PersistenceException: Error with the Join on [models.Patient.progress].
Could not find the matching foreign key for [id] in table[Results]?
Perhaps using a @JoinColumn with the name/referencedColumnName attributes swapped?
我的课程如下所示:
病人
@Entity
@Table(name = "Patients")
public class Patient
extends User {
@Id
@Column(name = "idPatient")
private int idPatient;
@Constraints.Required
private String medicalCoverage;
@Constraints.Required
private String disease;
@Constraints.Required
private int gradeDisease;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "patient",
fetch = FetchType.LAZY)
private List<Results> progress;
@ManyToMany
@JoinTable(name = "therapist_relation",
joinColumns = {@JoinColumn(name = "idPatient")},
inverseJoinColumns = {@JoinColumn(name = "idTherapist")})
private List<Therapist> therapists;
private int qAwardA;
private int qAwardB;
private int qAwardC;
结果
@Entity
@Table(name = "Results")
public class Results {
@Id
@Column(name = "idResult")
private int idResult;
private Game game;
@ManyToOne(optional = false, fetch = FetchType.LAZY)
@JoinColumn(name="idPatient", referencedColumnName = "idPatient", nullable = false)
private Patient patient;
@OneToMany
@JoinColumn(name="idTherapist", referencedColumnName = "idResult")
private Therapist therapist;
private int punctuation;
private String description;
我的代码有什么问题?