2010-02-03 5 views
0

@OneToOne 멤버에 @ForiegnKey 주석이 포함되는 것이 합리적입니까?@OneToOne 관계에 @ForiegnKey 주석이 포함될 수 있습니까?

@Entity 
class User { 

    @Id 
    @GeneratedValue(strategy = IDENTITY) 

    int id; 

    @OneToOne 
    @ForeignKey 
    @JoinColumn(name = "home_address_id", referencedColumnName = "id") 
    Address homeAddress; 

} 

@Entity 
class Address { 
    @Id 
    @GeneratedValue(strategy = IDENTITY) 
    int id; 
} 

답변

4

나는 @OneToOne 매핑이 묵시적으로 열에 대한 외부 키를 생성해야대로 필요가 있다고 생각하지 않습니다.

다른 한편으로는 개발자와 다른 개발자가 코드를 더 쉽게 이해하고 문제를 일으키지 않는 데 도움이된다고 생각하면이 코드를 그대로 둘 수 있습니다.

그러나 OneToOne 주석이 Java Persistence API의 일부인 경우 ForeingKey 주석이 최대 절전 모드 인 것 같습니다. 이것은 그것을 꺼내는 아이디어를지지 할 수 있습니다.

+0

주석을 제거하면 암시 적 외래 키가 생성되는 것처럼 보입니다. @ForeignKey 주석을 사용하여 외래 키에 대해 사용자에게 친숙한 이름을 제공했습니다. 나는 그것이 열쇠가 자동적으로 창조 된 ㄴ다는 것을에 확실하지 않았다. 귀하의 답변에 감사드립니다. – Sam