Я сделал это в методе создания User, а также управлял транзакциями там через Spring. Это правильно?
Правильность этой логики будет зависеть от того, как написано хранилище и каков его контракт. Если в хранилище не сохранятся какие-либо отношения, то это может быть признаком плохо спроектированного хранилища. Я ожидаю, что в хранилище будет реализована необходимая логика для хранения ассоциаций сущностей, а не только простых свойств сущности.
Репозиторий, основанный на решении ORM, упростил бы это за счет каскадирования постоянных событий, но в вашем случае это может привести к дублированию кода в обоих ваших репозиториях (я предполагаю, что у вас есть GroupRepository
также). Возможно, будет лучше, если вы решите, какой сущности принадлежит отношение, а затем сохраните связь в соответствующем хранилище. Поэтому любые изменения в ассоциации должны вносить только те лица, которые владеют ассоциацией (в вашем случае это User
, и, как следствие, UserRepository
должен управлять ассоциацией).