我有一个表PATIENT,其中有一些字段。还有一个CONTACT表,该表具有一个名为“ PatientId”的字段,该字段需要存储PATIENT的ID(是自动生成的),以及一个PATIENT_CONTACT表,该表仅将两个表相关联。
现在,这是棘手的部分。还有其他三个表:CONTACT_ADDRESS,CONTACT_PHONE,CONTACT_EMAIL。 CONTACT中的一行将具有与CONTACT_ADDRESS,CONTACT_PHONE和CONTACT EMAIL中的一个(只有一个)相同的ID。我如何使所有这些工作?
我尝试了很多方法,这就是我现在所拥有的:
@Entity
@Table(name = "patient", schema = "patient")
public class PatientEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private Long id;
//... more fields
@OneToOne
private ContactEmailEntity contactEmailEntity;
@OneToOne
private ContactAddressEntity contactAddressEntity;
@OneToOne
private ContactPhoneEntity contactPhoneEntity;
}
三个CONTACT_ *类是相似的,它们看起来像这样:
@Table(name = "contact_address", schema = "patient")
public class ContactAddressEntity {
@Id
@Column(name = "id")
private Long id;
// ... more fields
@OneToOne(cascade = {CascadeType.ALL})
@MapsId
private ContactEntity contact;
}
我的CONTACT类如下:
@Table(name = "contacto", schema = "paciente")
public class ContactEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private Long id;
//... more fields
您能看到看起来不正确或可以做得更好的事情吗?每种方法都会出现各种错误。我最近的一个是:
ERROR: column patientent0_.contact_address_entity_contact_id does not exist
在尝试进行简单的患者查找时。请任何帮助表示赞赏!