@OneToOne关系是否包含@ForiegnKey批注

时间:2010-02-03 06:00:52

标签: hibernate jpa hibernate-annotations

让@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;
}

1 个答案:

答案 0 :(得分:4)

我认为没有必要,因为@OneToOne映射应该隐含地为列创建外键。

另一方面,如果您认为它可以帮助您和其他开发人员更轻松地理解代码并且不会导致任何问题,那么您可以将其留在那里。

然而,似乎ForeingKey注释是特定于hibernate的,其中OneToOne注释是Java Persistence API的一部分。这可能支持将其取出的想法。