Какая точная разница между @JoinColumn
и @PrimaryKeyJoinColumn
?
Вы используете @JoinColumn
для столбцов, которые являются частью внешнего ключа. Типичный столбец может выглядеть (например, в таблице соединений с дополнительными атрибутами):
@ManyToOne
@JoinColumn(name = "...")
private OtherClass oc;
Что произойдет, если я продвигаю столбец как /PK, тоже (a.k.a. идентифицирующая связь)? Поскольку столбец теперь является PK, я должен пометить его с помощью @Id
:
@Id
@ManyToOne
@JoinColumn(name = "...")
private OtherClass oc;
Теперь возникает вопрос:
Являются ли @Id
+ @JoinColumn
такими же, как только @PrimaryKeyJoinColumn
?:
@ManyToOne
@PrimaryKeyJoinColumn(name = "...")
private OtherClass oc;
Если нет, для чего @PrimaryKeyJoinColumn
для?