Как назвать ограничение внешнего ключа ссылок ManyToOne с JPA 2.1?

@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 (value = {})

Таким образом, он может использоваться только как часть другой аннотации (см. раздел "См. также" ):

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

Ответ 2

Вы правы, я неправильно прочитал документацию. Его можно определить как часть аннотации @JoinColumn.

Это должно выглядеть так:

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

Ответ 3

Вставляете ли вы @JoinColumn(foreignKey = @ForeignKey(name = "FK_USER")) прямо в сопоставленный с примером сущности:

@ManyToOne
@JoinColumn(foreignKey = @ForeignKey(name = "FK_USER"))
private User user;