У меня есть семейство сущностей, которые выглядят примерно так:
Company (1 -> n) CompanyContact (n <- 1) Contact
\ /
\ /
\ (1 -> n) User ( 1 - 1) /
Чтобы повторить,
Компания имеет отношения OneToMany с CompanyContact (которая является просто объектом, связывающим компанию, контакт и параметр) и отношения OneToMany с пользователем
Контакт имеет отношения OneToMany с CompanyContact и отношения OneToOne с пользователем
Эта структура неуклонно растет, так как потребности нашего бизнеса уточняются, и в будущем они будут еще более усложнены дополнительными организациями.
Проблема может быть продемонстрирована на следующем примере:
Когда я создаю Пользователя, я устанавливаю правильную Компанию и Контакт перед сохранением, и Пользователь сохраняется правильно. Тем не менее, компании и контактные лица в БД все еще не обращают внимания на свои отношения с вновь созданным пользователем.
Если я хочу постоянно обновлять все свои сущности, нужно ли мне обновлять всю цепочку Company-CompanyContact-Contact-User каждый раз? Есть ли лучший способ сделать это?
Я пробовал применять различные каскадные стратегии для отображения отношений на стороне пользователя, например
@ OneToOne (cascade = CascadeType.ALL)
частный контакт контакт;
но это по-прежнему не обновляет информацию о компании и контактах.