自JPA 2.1以来如何命名ManyToOne引用的外键约束?

@org.hibernate.annotations.ForeignKey已被弃用,但我找不到任何JPA 2.1等价物看起来如何的例子?

 @ManyToOne @ForeignKey(name = "FK_USER") //@deprecated Prefer the JPA 2.1 introduced {@link javax.persistence.ForeignKey} instead. private User user; 

如果没有弃用的注释,如何实现?

如文档所示,此注释不能应用于任何内容:

@target(值= {})

因此,它只能用作另一个注释的一部分(在See Also部分中列出):

 @JoinColumn(foreignKey = @ForeignKey(name = "FK_USER")) 

你是对的,我误读了文档。 它可以定义为@JoinColumn注释的一部分。

看起来应该是这样的:

 @JoinColumn(foreignKey = @ForeignKey(name = "FK_USER"))