гибернация удаление - PullRequest
0 голосов
/ 01 мая 2009

У меня есть объект курса. Объект курса имеет набор учебных пособий и набор приложений. Когда я удаляю объекты курса, я хочу, чтобы связанный набор руководств и приложений был удален. Мой course.hbm выглядит следующим образом

и мой application.hbm содержит

    <property name="appdatetime" type="timestamp">
        <column name="appdatetime" length="19" />
    </property>
    <property name="appstatus" type="java.lang.Integer">
        <column name="appstatus" />
    </property>
    <property name="apptype" type="java.lang.Integer">
        <column name="apptype" />
    </property>

    <many-to-one name="course" column="cid"/>
    <many-to-one name="employee" column="empid" />
</class>

Ответы [ 2 ]

0 голосов
/ 01 мая 2009

Хотя это может быть возможно сделать в спящем режиме, правильный путь (который всегда обеспечивает целостность базы данных) состоит в использовании ограничений CASCADE ON DELETE на уровне базы данных. Проверьте документацию базы данных для деталей

0 голосов
/ 01 мая 2009

Установите cascade = "delete-orphan, all", и операция удаления будет касаться учебников и приложений, а также удалит их, если они осиротят (не связаны ни с каким другим курсом).

Мы используем аннотации в спящем режиме, поэтому я не совсем уверен, какой именно xml добавить, но из документов он выглядит так: cascade = "all-delete-orphan" должен быть в каждом из этих определений коллекции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...