Вопрос по описанию сущности по ER диаграмме

Здравствуйте, не могу сообразить как описать связь для Поля 2 в таблице 2, приведенную на скриншоте, через @JoinColumn
image

Добрый день, спасибо за ваш вопрос.

Проанализируем ER диаграмму

У вас таблица 1 связана с таблицей 2 связью (таблица 1 ОДНА (может не иметь таблицы2) - таблица 2 МНОГО (если есть то обязательна связана с таблицей 1). Проще всего такие таблицы читать так - где у вас 3 линии собираются ввиде треугольника это значит множество таблиц2 входят в единственную (1 линия) таблицу 1. Важные делали - нолик стоит напротив таблицы1 - значит, что таблица 1 может и не иметь ни одной записи о таблице2, НО сама таблица 2 - обязана иметь ссылку таблицу 1. Это простой вариант отношений сущностей OneToMany

Обдумаем, как она должна быть реализована:

  1. У нас есть таблица 1 имеет много таблиц2, а таблица 2 обязательно иметь ссылку на таблицу1.
  2. Из пункта 1 можно сказать, что в таблице 1 просто будет ID (Primary Key / первичный ключ) и все, остальные поля нас не интересуют
  3. Таблица 2 будет иметь запись table1_id которая просто будет показывать к какой таблице1 принадлежит текущая таблица2. То есть это NOT NULL FOREIGN KEY на таблицу1.
  4. Если мы заходим для таблицы1 найти и ее все таблицы2, то напишем следующий запрос:
    select e from table1 TABLE1_ROW join table2 TABLE2_ROW on TABLE1_ROW.id = TABLE2_ROW.table1_id

Вывод @JoinColumn будет по table1_id

Решение:

1) В сущности Table1:

Будет запись

@OneToMany
@JoinColumn("table1_id")
private List<Table2> ownTables

2) В Table2 будет запись

@ManyToOne
private Table1 owner;

или на вариант “Joinless”
@Column(“table1_id”)
private ID id;

1 симпатия