JPA: différence entre les annotations @JoinColumn et @PrimaryKeyJoinColumn?

Quelle est la différence exacte entre @JoinColumn et @PrimaryKeyJoinColumn?

Vous utilisez @JoinColumn pour les colonnes qui font partie d'une clé étrangère. Typique de la colonne pourrait ressembler (par exemple, dans une table de jointure avec des attributs supplémentaires):

@ManyToOne
@JoinColumn(name = "...")
private OtherClass oc;

Ce qui se passe si je fais la promotion de la colonne à un/PK, trop (un.k.un. l'identification de la relation)? Comme la colonne est maintenant le PK, je dois tagger avec @Id:

@Id
@ManyToOne
@JoinColumn(name = "...")
private OtherClass oc;

Maintenant, la question est:

Sont @Id + @JoinColumn le même que juste @PrimaryKeyJoinColumn?:

@ManyToOne
@PrimaryKeyJoinColumn(name = "...")
private OtherClass oc;

Si non, quelle est @PrimaryKeyJoinColumn là pour?

InformationsquelleAutor Kawu | 2010-08-05