2013-04-16 2 views
0

У меня есть PatientVisit.java, который имеет один к одному картографирования с PatientVisitObject.java:Hibernate @OneToOne отображение

@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 имеет составной ключ. Мне нужно сопоставить key.patientVisitSeq с моим пациентомVisitSeq в PatientVisit.java.

@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 аннотацию и не может получить это право. Может кто-то, пожалуйста, дайте мне какое-то направление. Благодарю.

ответ

1

Вы должны использовать двунаправленную отображение с 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; 

    ... 
} 

Смотрите также:

Смежные вопросы