我在类中使用标准的JpaRepository接口。
我有这个课程:
用户:
@Entity
@Table(name = "user")
@Inheritance(strategy = InheritanceType.JOINED)
public class User extends BaseEntity {
private Long id;
//Other Attr
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
public Long getId() {
return id;
}
//Getters & Setters...
}
医生:
@Entity
@Table(name = "doctor")
@PrimaryKeyJoinColumn(name = "id", referencedColumnName="id")
public class Doctor extends User {
private Long regNumber;
//Getters & Setters
}
我正在搜索,似乎jpa / hibernate没有用于插入带有来自现有用户的信息的医生的功能/程序。
我尝试使用用户查询中的信息保存医生,它为用户表创建了一个新的用户条目。
理论上,一个人可以是一个没有医生的用户,以后可以成为医生。
答案 0 :(得分:0)
理论上,一个人可以是一个没有医生的用户,以后可以成为医生。
这在现实生活中是真实的,但与Java继承无关:给定类型的对象不能成为另一种类型的对象。如果要对这种情况进行建模,继承是一个糟糕的工具。
您应该使用构图。用户可以拥有博士角色。这是一个OneToOne关联,可以使用与您用于映射继承的表相同的表进行映射,并允许用户成为医生。
它也是更好的设计,因为它允许多种角色:例如,用户是医生和音乐家。继承无法实现的东西。