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 ().

È stato utile?

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 .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top