Может ли отношение @OneToOne содержать аннотацию @ForiegnKey - PullRequest
0 голосов
/ 03 февраля 2010

Имеет ли смысл, чтобы член @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 Ответ

4 голосов
/ 03 февраля 2010

Не думаю, что это необходимо, поскольку отображение @ OneToOne должно косвенно создавать внешний ключ для столбца.

С другой стороны, если вы считаете, что это поможет вам и другим разработчикам легче понять код и не вызывает никаких проблем, вы можете оставить его там.

Однако, похоже, что аннотация ForeingKey специфична для режима гибернации, когда аннотация OneToOne является частью Java Persistence API. Это могло бы поддержать идею убрать это.

...