Проблема каскада гибернации при удалении записи

У меня есть проблема с каскадом отношения один ко многим. Одна из моих таблиц содержит компонент, а компонент связан с другой таблицей, которая является моей галереей (галерея имеет много видов связей с другими таблицами.). Затем компонент используется в одном из моих базовых классов. Я использовал 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, Посмотрите на этот вопрос, с возможной обходной путь.

Другие вопросы по тегам