Hibernate удалить с помощью hql - PullRequest
0 голосов
/ 16 мая 2011

У меня есть следующее отображение в 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>

Если я хочу удалить все элементы P4 в hql, я делаю что-то похожее на

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

, но, очевидно, у меня есть ограничениеисключение нарушения, потому что мне нужно удалить внутреннюю таблицу "L_st_49eea", но я не знаю, как это сделать в hql.

1 Ответ

1 голос
/ 16 мая 2011

Вы не можете сделать это только через HQL. Вы должны сначала удалить ссылочные объекты, а затем удалить родительский объект.Я бы рекомендовал использовать каскад удаления вместе с ограничением внешнего ключа, а затем вы можете удалить с помощью простого HQL на родительском.

...