Реляционная модель хранит FK на стороне дочерней таблицы.
В Java у нас два способа отразить эту связь: коллекция в родительской сущности (@OneToMany / List) или ссылка в дочерней (@ManyToOne / long parentId).
Выбор между ними влияет на поведение при записи — и именно здесь большинство решений принимаются без достаточного обоснования.
Тест, который даёт однозначный ответ
Влад Михалча формулирует так: ассоциация @ManyToOne является наиболее естественным способом отображения связи «один ко многим» в базе данных и, как правило, наиболее эффективной альтернативой.
Практический критерий: если убрать коллекцию и заменить её отдельным запросом, какое бизнес-правило перестанет работать?
Если ответ — «никакое, просто список будет получаться отдельным запросом» — коллекция не нужна как часть модели.
Если ответ — «нарушится инвариант» — коллекция оправдана.
Типичные случаи: