Проблема каскада гибернации при удалении записи
У меня есть проблема с каскадом отношения один ко многим. Одна из моих таблиц содержит компонент, а компонент связан с другой таблицей, которая является моей галереей (галерея имеет много видов связей с другими таблицами.). Затем компонент используется в одном из моих базовых классов. Я использовал Entity Developer для генерации кода, и он сделал это с помощью следующих строк: Baseinfo.hbm.xml
...
<component>
...
<many-to-one name="LocationMap" class="..." cascade="all">
<column name="ImageId" not-null="true"/>
</many-to-one>
</component>
....
Поскольку мне нужно было установить его несколько раз в ноль, я изменяю not-null на "false". Все работало нормально, пока я не наткнулся на удаление записи. После установки для LocationMap значения null, я проверяю базу данных и вижу, что запись изображения все еще существует. После некоторых обсуждений я также добавил "delete-orphan" в параметры каскада, man: cascade="all,delete-orphan", но это не сработало, я также перевел приложение в режим отладки, и после выполнения кода сохранения я попытался это в ближайших окнах: session.Flush(); и это не сработало... Я не хочу проходить через уродливое кодирование, и не забудьте удалить запись в последующем коде, потому что она не работает... что мне делать?!
1 ответ
Я не думаю all,delete-orphan
поддерживается с many-to-one
а также component
, Посмотрите на этот вопрос, с возможной обходной путь.