如何在Hibernate Spring Boot中实现IS-A关系?

时间:2017-05-17 08:33:23

标签: mysql hibernate spring-boot

我有3个表:帐户,医生,病人

  • 帐户( User_id ,全名,电子邮件,密码)
  • 患者( Patient_id ,healthrecord_id,insurance_id)
  • 医生( Doctor_id ,professional_statement,clinic_id)

Patient_id和Doctor_id是主键,也是在Account表中引用User_id的foreign_key。我认为这是Account-Patient,Account Doctor的一对一关系。我不知道如何在Hibernate Entity中实现它

1 个答案:

答案 0 :(得分:0)

@Entity
public class Account {

    @Id
    private String id;

    @OneToOne
    private User user;
}

创建超类

@MappedSuperclass
public abstract class User {

    @Id
    private String id;

}

并将其与您的实体一起扩展。

@Entity
public class Doctor extends User {

    private String name;

    private String email;

}

您需要创建一个(Absctract)类User并使用 患者和医生也是如此。您只需要在基础实体上定义id字段。 您还必须为所有类提供getter和setter。我建议使用lombok注释@Getter@Setter

或者您可以将它们逐个映射到帐户实体。

如果有什么事情不清楚,请打我!