Springboot数据用户关系设置

时间:2017-06-29 02:25:18

标签: java hibernate jpa spring-boot spring-data-jpa

我想知道如何设置以下关系:

该关系涉及用户(实体),其中每个用户可以来自多个组织之一。第二个实体用于记录每个用户的组织特定详细信息(实体)。

每个组织都有自己的实体。

@Entity
public class User

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long Id
private Name name

然后我为每个组织提供了几个实体。每个用户只需要在这些实体之一中只有一个映射到一个记录:

@Entity
public class EducationUserDetails

@Id
private Long Id
@MapsId
private User user;
private String teacherRegistrationNo
private String teacherSchool


@Entity
public class DoctorUserDetails

@Id
private Long Id
@MapsId
private User user;
private String medicalCouncilNo
private String doctorHospital

如何设置/建模此关系?

1 个答案:

答案 0 :(得分:0)

请参阅MapsId documentation。它需要@ManyToOne@OneToOne关系。

如果您希望使用相同的主键进行一对一映射,则可以使用@PrimaryKeyJoinColumn

   @PrimaryKeyJoinColumn  
   @OneToOne 
   private User user;

示例请参阅:https://www.mkyong.com/hibernate/hibernate-one-to-one-relationship-example-annotation/