Ассоциация один-к-одному
Когда один объект ссылается на другой объект и когда этот второй объект не является компонентом. Если хочется сделать
чтобы каждый объект сохранялся в свою таблицу, а не в одну. Есть один объект, есть второй и между ними связь один-к-одному.
Здесь используем аннотацию @OneToOne.
Здесь есть свои хитрости. Как сделать связь один-к-одному? У нас есть одна таблица и вторая. Как связать два ряда этих
таблиц один-к-одному?
Есть две стратегии:
-
Связывание по первичному ключу. Первичный ключ в одном объекте соответствует первичному ключу в другом объекте.
Это сложная ассоциация и управлять ею тоже не просто.
@OneToOne
@PrimaryKeyJoinColumn
-
Проще сделать, если мы в одной из таблиц создадим foreign key на другой первичный ключ. С точки зрения базы данных мы
сделаем связь многие-к-одному, но с точки зрения объктов это будет один-к-одному.
@OneToOne
@JoinColumn(name = 'STAT_ID')
То есть в таблице Item (имя класса) создатся колонка STAT_ID, который будет ссылаться на Primary Key другого класса - таблицы.
Можно еще через @JoinTable, но лучше без него.