elemento Elimina dal set
-
26-09-2019 - |
Domanda
Ho 2 classi Tema (i compiti) e Disciplina (ovviamente), in cui un Corso ha una serie di compiti a casa. In Hibernate ho mappato questo per una delle associazioni uno-a-molti in questo modo:
<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>
Il problema è che si aggiungerà (inserire righe nella tabella 'Teme'), ma non eliminerà le righe e non ottengo alcuna eccezioni generate.
Im utilizzando il metodo merge ().
Soluzione
Anche se la tua domanda non è chiaro (? Come si fa a salvare ed eliminare), suggerirei è necessario cascade
set:
<set cascade="all-delete-orphan">
Come sidenote -. I nomi Evita nella vostra lingua madre
Altri suggerimenti
Secondo la descrizione, capisco che un Tema
non può esistere senza la sua Disciplina
: se si rimuove un Tema
della collezione, si desidera che venga cancellato. A dire Hibernate per fare questo, è necessario utilizzare 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>
Fare riferimento alla documentazione in linea .