2017-10-05 7 views
1

同じ時間(春JPA/Hibernateの)で外部キーとして主キーを作る私はこのような実体ました:@OneToOneは

@Entity 
public class Person { 

    @Id 
    private Long id; 

    private String firstName; 

    // Getters and setters 
} 

idは自動生成が、ユーザーによって決定されていません。

私はこのような第二の実体があります。第二のエンティティでも

@Entity 
public class PersonDetail { 

    @Id 
    @OneToOne 
    private Long id; // should be referred to id of Person entity 
    // or maybe private Person person; ??? 

    private String language; 
    private Integer age; 

    // Getters and setters 
} 

は、idが自動生成されません。

私は@OneToOne関係を作りたい、と私はPersonDetailidPersonDetailの主キーであるが、同時にそれはPersonエンティティ(idフィールド)への外部キーでなければならないことをしたいと思います。

Spring JPA/Hibernateアノテーションで可能ですか?

おかげでたくさん、あなたがこのウィキに従うことができ アンドレア

+0

このブログの記事は、あなた何をする方法を説明します必要があります:https://vladmihalcea.com/2016/07/26/the-best-way-to-map-a-onetoone-relationship-with-jpa-and-hibernate/ –

答えて

0

Primary Keys through OneToOne and ManyToOne Relationships

はこれにあなたのPersonDetailエンティティを再書き込み:

@Entity 
public class PersonDetail { 

    @Id 
    private Long id; 

    @OneToOne 
    @PrimaryKeyJoinColumn 
    private Person person; 

    private String language; 
    private Integer age; 

    // Getters and setters 
} 
+0

なぜ別の 'id'フィールドを導入しましたか? 'PersonDetail'で? – gavenkoa