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

标签 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 的外键。我认为账户-病人、账户医生是一对一的关系。我不知道如何在Hibernate Entity中实现它

最佳答案

@Entity
public class Account {

    @Id
    private String id;

    @OneToOne
    private User user;
}

创建父类(super class)

@MappedSuperclass
public abstract class User {

    @Id
    private String id;

}

并用您的实体扩展它。

@Entity
public class Doctor extends User {

    private String name;

    private String email;

}

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

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

如果有什么不清楚的地方,请联系我!

关于mysql - Hibernate Spring Boot中如何实现IS-A关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44019574/

相关文章:

java - Hibernate 无法从数据库中获取 SequenceInformation

java - Spring Boot 应用程序 - 使用参数调用类而不默认运行

java - 带有 spring-boot-maven 插件的 Spring Boot - 运行集成测试后无法重启应用服务器

mysql - 在 MySQL Workbench 中永久禁用安全更新?

java - Hibernate 每个国家/地区一个实体多个表

php - MySQL语句从所有行中获取一列的值,其中另一列的值=指定值

hibernate - Grails( hibernate )条件查询

azure - 是否可以在Azure Vault中生成公钥私钥对

mysql - 有没有办法检查表中的新行是否与其他表中的条目一致? [SQL]

mysql - 不遵守 WHERE 条件