Это очень сильно зависит от того, какой тип отношений вы хотите установить. Если Соглашение может существовать независимо от Клиента, это означает, что customer_id в соглашении должен иметь значение NULL.
Если Соглашение не может существовать независимо, это предполагает, что идентификатор клиента не может иметь значение NULL, и в этом случае Соглашение не может быть создано в первую очередь без создания клиента. Это означает, что у вас более тесная связь между клиентом и соответствующим соглашением.
Как только мы определили, что у нас сильные отношения, нам нужно выяснить, насколько они сильны на самом деле и кому они будут принадлежать. Как правило, именно сторона «Множество» владеет отношениями, и обновления происходят через «много сторон». Это означает, что ваш JoinColumn должен быть на МНОГОМ, а сопоставленный - на ОДНОЙ стороне.
Это интересный случай, когда право собственности является обратным, когда ОДНАЯ сторона фактически владеет отношением, в этом случае внешний ключ на стороне многих не может быть НЕДЕЙСТВИТЕЛЕН, потому что нет никакой возможности для ОДНОЙ стороны-владельца знать, что такое МНОГИЕ стороны. ключ.