Я пытаюсь смоделировать схему решения переходных операций в Hibernate, и я не уверен, как получить граф объекта и поведение, которые я хочу от модели.Что такое правильный CascadeType в аннотации @ManyToMany Hibernate?
Структура таблицы использует корреляционную таблицу (многие-ко-многим), чтобы создать списки пользователей для работы:
Operation OperationUsers Users
op_id op_id user_id
... user_id ...
При моделировании настойчивый класса Operation.java используя спящий режим аннотаций, я создал:
@ManyToMany(fetch=FetchType.LAZY)
@JoinColumn(name="op_id")
public List<User> users() { return userlist; }
до сих пор, у меня есть следующие вопросы:
- Когда пользователь удален сюда m список, как мне избежать Hibernate
удаление пользователя из таблицы Users? Его следует просто удалить
из таблицы корреляции, а не таблицы Users. Я не вижу действительного CascadeType для этого. - Должен ли я добавить что-нибудь еще в тело метода?
- Нужно ли добавлять дополнительные аргументы аннотации?
- Я ожидаю, что сделаю это без futzing с классом User. Пожалуйста, скажите мне, что мне не нужно возиться с User.java!
Возможно, я задумываюсь над этим, но это характер обучения ... Спасибо за любую помощь, которую вы можете предложить!
Когда я говорю 'operation.addUser (aUser)' Я хочу, чтобы Hibernate выполнял 'insert в values_table значения (op_id, user_id)', и когда я говорю 'operation.removeUser (aUser)' Я хочу, чтобы Hibernate выполнял 'delete from corre_table, где op_id =? и user_id =? '. Чего я хочу избежать: 'delete from user where user_id =?'. – user1944491