У меня есть две таблицы с ассоциацией «многие-ко-многим».Hibernate: удалить связь many-to-many
- DB фрагмент:
грузы
Id
Имя
сессий
Id
Дата
sessionsloads
LoadId
SessionId
- Hibernate фрагменты отображения:
/* loads.hbm.xml */
<set name="sessions" table="sessionsloads" inverse="true">
<key column="LoadId" />
<many-to-many column="SessionId" class="Session" />
</set>
…
/* sessions.hbm.xml */
<set name="loads" table="sessionsloads">
<key column="SessionId" />
<many-to-many column="LoadId" class="Load" />
</set>
Для того, чтобы удалить одну запись из таблицы ассоциации sessionsloads я выполнить этот код:
Session session = sessionDao.getObject(sessionId);
Load load = loadDao.getObject(loadId);
load.getSessions().remove(session);
loadDao.saveObject(load);
Но после запуска этот код ничего не меняет.
Какой способ удалить ассоциацию?
Спасибо, пробовал, но не работает. Hibernate даже не записывает никакого запроса 'delete' в журнал. – 0x2D9A3
@Bar Должна быть другая проблема, потому что это определенно работает. Я попытаюсь воспроизвести позже с вашим картографированием, но я знаю, что он работает. –
Как вы упомянули, 'cascade' не работает в этом случае, правильно? Кроме того, люди говорят, что он может работать с 'session.flush()'. Но что я могу сделать, если я использую 'getHibenateTemplate'? – 0x2D9A3