@org.hibernate.annotations.ForeignKey
a été déconseillé, mais je ne trouve aucun exemple à quoi devrait ressembler l'équivalent JPA 2.1?
@ManyToOne
@ForeignKey(name = "FK_USER") //@deprecated Prefer the JPA 2.1 introduced {@link javax.persistence.ForeignKey} instead.
private User user;
Comment cela doit-il être mis en œuvre sans l'annotation obsolète?
Comme la documentation indique, cette annotation ne peut être appliquée à rien:
@Target (value = {})
Il ne peut donc être utilisé que dans le cadre d'une autre annotation (répertoriée dans la section Voir aussi ):
@JoinColumn(foreignKey = @ForeignKey(name = "FK_USER"))
Vous avez raison, j'ai mal lu la documentation. Il peut être défini comme faisant partie de @JoinColumn
annotation.
Cela devrait ressembler à ça:
@JoinColumn(foreignKey = @ForeignKey(name = "FK_USER"))
Insérez-vous @JoinColumn(foreignKey = @ForeignKey(name = "FK_USER"))
directement à mappé à l'exemple d'entité:
@ManyToOne
@JoinColumn(foreignKey = @ForeignKey(name = "FK_USER"))
private User user;