我正在制作三张桌子--医生,病人和专业。病人可以有一个GP,但一个医生可以是一个GP的许多病人。每个医生都有自己的专长(例如神经外科医生、心脏病专家、泌尿科医生等)。当我试图用中间表在医生和专业之间建立多到多的连接时,我会得到一个错误: BeanCreationException (特别是BeanCreationException引用一个未知的目标实体属性)导致的“创建类路径资源中定义的名称‘mappedBy’的bean错误”。因为我刚开始穿春靴,如果有人能解释我的话,我会很高兴的。提前谢谢你
BaseEntity类:
@MappedSuperclass
public class BaseEntity {
@Id
@GeneratedValue(strategy= GenerationType.IDENTITY)
private long id;
}医生班:
@Entity
@Table(name="doctor")
public class Doctor extends BaseEntity{
private String name;
@ManyToMany(mappedBy ="doctor")
private Set<Specialty> specialties;
@OneToMany(mappedBy ="doctor")
private List<Patient> GpOfPatients;
}病人班:
@Entity
@Table(name="patient")
public class Patient extends BaseEntity{
private String name;
private String EGN;
private boolean insurancesPaidInLastSixMonths;
@ManyToOne
@JoinColumn(name="gp_id")
private Doctor doctor;
}专业课:
@Entity
@Table(name="specialty")
public class Specialty extends BaseEntity{
private String specialtyName;
@ManyToMany
@JoinTable(name="doctors_specialties",joinColumns = @JoinColumn(name="specialty_id"),
inverseJoinColumns = @JoinColumn(name="doctor_id"))
private Set<Doctor> doctors;
}发布于 2021-12-07 21:00:48
在医生类中,您用specialties映射doctor,但在特殊情况下,医生集的名称是doctors,因此不能映射它们。
您应该更改您的博士课程如下所示:
@Entity
@Table(name="doctor")
public class Doctor extends BaseEntity{
private String name;
@ManyToMany(mappedBy ="doctors")
private Set<Specialty> specialties;
@OneToMany(mappedBy ="doctor")
private List<Patient> GpOfPatients;
}https://stackoverflow.com/questions/70263268
复制相似问题