2010-04-11 3 views
0

У меня есть 2 класса Тема (Домашнее задание) и Дисциплина (курс), где Курс имеет набор домашних заданий. В Hibernate я отобразил это один-ко-многим ассоциаций, как это:Удалить элемент из набора

<class name="model.Disciplina" table="devgar_scoala.discipline" > 
<id name="id" > 
    <generator class="increment"/> 
</id> 
<set name="listaTeme" table="devgar_scoala.teme"> 
    <key column="Discipline_id" not-null="true" ></key> 
    <one-to-many class="model.Tema" ></one-to-many> 
</set> 
</class> 

<class name="model.Tema" table="devgar_scoala.teme" > 
<id name="id"> 
    <generator class="increment" /> 
</id> 
<property name="titlu" type="string" /> 
<property name="cerinta" type="binary"> 
    <column name="cerinta" sql-type="blob" /> 
</property> 
</class> 

Проблема заключается в том, что она будет добавить (вставить строки в таблице «Тема»), но он не будет удалять строки и я не получаю исключений.

Im использование метода merge().

ответ

0

Хотя Ваш вопрос остается неясным (? Как сохранить и удалить), я хотел бы предложить вам нужно установить cascade:

<set cascade="all-delete-orphan"> 

Как заметка на полях - избегать имен в вашем родном языке.

+0

спасибо. оно работает! – Blitzkr1eg

0

Согласно вашему описанию, я понимаю, что Tema не может существовать без его Disciplina: если вы удалите Tema из коллекции, вы хотите, чтобы его удаляли. Чтобы сообщить Hibernate об этом, вы должны использовать cascade="all-delete-orphan".

<set name="listaTeme" table="devgar_scoala.teme" cascade="all-delete-orphan"> 
    <key column="Discipline_id" not-null="true" ></key> 
    <one-to-many class="model.Tema" ></one-to-many> 
</set> 

См. online documentation.