代码之家  ›  专栏  ›  技术社区  ›  AdrianS

从集合中删除元素

  •  0
  • AdrianS  · 技术社区  · 16 年前

    在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>
    

    问题是它将添加(在表'Teme'中插入行),但不会删除任何行,并且不会引发异常。

    我正在使用merge()方法。

    2 回复  |  直到 16 年前
        1
  •  0
  •   Bozho    16 年前

    cascade :

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

    作为旁注-避免用你的母语命名。

        2
  •  0
  •   Pascal Thivent    16 年前

    Tema 没有它就不能存在 Disciplina :如果删除 特马 从集合中,您希望将其删除。要让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