Как назвать ограничение внешнего ключа ссылок 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;