Операция выполнена!
Закрыть
Хабы: Java, Проектирование и рефакторинг, Проектирование API

Реляционная модель хранит FK на стороне дочерней таблицы.

В Java у нас два способа отразить эту связь: коллекция в родительской сущности (@OneToMany / List) или ссылка в дочерней (@ManyToOne / long parentId).

Выбор между ними влияет на поведение при записи — и именно здесь большинство решений принимаются без достаточного обоснования.

Тест, который даёт однозначный ответ

Влад Михалча формулирует так: ассоциация @ManyToOne является наиболее естественным способом отображения связи «один ко многим» в базе данных и, как правило, наиболее эффективной альтернативой.

Практический критерий: если убрать коллекцию и заменить её отдельным запросом, какое бизнес-правило перестанет работать?

Если ответ — «никакое, просто список будет получаться отдельным запросом» — коллекция не нужна как часть модели.

Если ответ — «нарушится инвариант» — коллекция оправдана.

Типичные случаи:

Читать далее
Читайте также
НОВОСТИ

ПИШИТЕ

Техническая поддержка проекта ВсеТут

info@vsetut.pro