JPA Сохранить не принадлежащую сторону ManyToMany Relation - PullRequest
2 голосов
/ 09 марта 2011

У меня вопрос о том, как сохранить отношения M2M. Одна сторона всегда должна быть владельцем. В нашем сценарии у нас есть сущность «Роль» и сущность «Пользователь». Роль может иметь много пользователей, и пользователям могут быть назначены разные роли. Сущность «Роль» является владельцем сайта.

В графическом интерфейсе администратор может добавлять пользователей к роли. Когда я сохраняю роль с назначенными пользователями, все работает хорошо. Теперь мы должны предоставить способ назначать роли пользователям. Gui для этого не проблема, но я не знаю, как сохранить измененные назначения ролей. Сохранение пользователя не сохраняет назначенные роли, потому что это не сторона-владелец.

Есть ли другой способ сделать это? Я не уверен, но думаю, что единственный способ сделать это - добавить выбранного пользователя во все назначенные роли и сохранить роли.

1 Ответ

0 голосов
/ 09 марта 2011

Чтобы сохранить ассоциацию, вам нужно сохранить свою сторону отношений.Для обеспечения согласованности объектов в памяти вы, вероятно, захотите управлять этим в методе службы, который обновляет коллекции в пользователе и роли и (если это имеет смысл в вашей реализации) выполняет сохранение для вас, затемВы можете вызвать метод для установления связи, добавляете ли вы пользователя в роль или роль для пользователя.Это, по крайней мере, отвлечет реализацию модели от абонентов вашей службы и обеспечит правильное сохранение.

...