Question

J'ai la cartographie suivante dans Hibernate:

    <class name="com.foo.bulk_delete.test3.lim.bl.pom.impl.P4" table="P4_BDELETE">
    <list lazy="false" fetch="select" batch-size="25" name="strings" table="L_st_49eea" >
        <key>
            <column name="f_oid$1" index="I_oid$_49eea" sql-type="char(35)"/>
        </key>
        <index column="s_idx$"/>
        <element type="VarcharStringType">
            <column name="s_elem$_5eb03"  length="512"/>
        </element>
    </list>
</class>

Si je veux supprimer tous les éléments P4 dans HQL, je fais quelque chose de similaire à

delete from com.foo.bulk_delete.test3.lim.bl.pom.impl.P4 p4

Mais évidemment, j'ai une exception de violation de contraintes parce que je dois supprimer la table "l_st_49ea" intérieure, mais je ne sais pas comment le faire dans HQL.

Était-ce utile?

La solution

Vous ne pouvez pas faire cela via HQL seul .. Vous devez d'abord supprimer les entités référencées, puis supprimer l'entité mère.
Je recommanderais d'utiliser Suppr Cascade ainsi que de la contrainte de clé étrangère, puis de supprimer via Simple HQL sur le parent.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top