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

2022-09-01 16:35:11

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

如何在没有已弃用的注释的情况下实现它?


答案 1

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

@Target(值={})

因此,它只能用作另一个注释的一部分(在“请参阅”部分中列出):

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

答案 2

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

它应该看起来像这样:

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

推荐