有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何使用Hibernate映射所有这些表?

我有一个病人,有一些字段。还有一个联系人表,它有一个名为“patientId”的字段,需要存储患者ID(自动生成),还有一个仅与这两个表相关的PATIENT\u联系人表

现在,棘手的部分来了。还有三个表:联系地址、联系电话、联系电子邮件。联系人中的一行将与联系人地址、联系人电话和联系人电子邮件中的一行(且仅一行)具有相同的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;
}

我的联系人类如下所示:

@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

当尝试做一个简单的患者查找时。请,任何帮助都将不胜感激


共 (0) 个答案