簡體   English   中英

HIbernate @OneToOne映射

[英]HIbernate @OneToOne mapping

我有一個PatientVisit.java,它與PatientVisitObject.java具有一對一的映射:

@Entity
@Table(name = "P_Visit")
public class PatientVisit extends Bean {
  @Id
  @Column(name = "PATIENT_VISIT_SEQ")
  private Long patientVisitSeq;
  @Column(name = "PATIENT_FIRST_NM")
  private String firstName;
  @Column(name = "PATIENT_LAST_NM")
  private String lastName;
  @Column(name = "PATIENT_MIDDLE_NM")
  private String middleName;
  @OneToOne
  private PatientVisitObject pvo;
}

PatientVisitObject.java具有復合鍵。 我需要在PatientVisit.java中將key.patientVisitSeq映射到我的PatientVisitSeq。

@Entity
@Table(name = "Patient_V_O")
public class PatientVisitObject extends Bean {
  @Id
  private PatientVisitObjectKey key;
  @Column(name = "FIELD")
  private String field;
}

這是關鍵:

@Embeddable
public class PatientVisitObjectKey implements Serializable {
  @Column(name = "PATIENT_VISIT_SEQ")
  private Long patientVisitSeq;
  @Column(name = "PATIENT_VISIT_OBJECT_SEQ")
  private Long patientVisitObjectSeq;
}

我嘗試使用@JoinTable批注,但無法正確處理。 有人可以給我一些指示。 謝謝。

您需要使用雙向映射,並且PatientVisit是關系的反面:

public class PatientVisit extends Bean {
    ...
    @OneToOne(mappedBy = "pv")
    private PatientVisitObject pvo;
    ...
}

public class PatientVisitObject extends Bean {
    @EmbeddedId
    private PatientVisitObjectKey key;

    @OneToOne 
    @MapsId("patientVisitSeq")
    private PatientVisit pv;

    ...
}

也可以看看:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM