如何在hibernate映射文件中实施级联行为

如何在hibernate映射文件中实施级联行为,hibernate,Hibernate,我的数据库中有两个实体,模块和命令,它们处于一对多关系中,因为一个模块可以分配多个命令给它。 此外,命令仅在分配给模块时才有意义。 因此,我想定义一个级联策略,这样删除模块就会导致隐式删除所有相关命令 我使用的是Hibernate,我需要通过xml映射文件定义实体。 我正在使用以下配置: 在Module.hbm.xml中 .... <list name="pendingCommands" table="COMMANDS" invers

我的数据库中有两个实体,模块和命令,它们处于一对多关系中,因为一个模块可以分配多个命令给它。 此外,命令仅在分配给模块时才有意义。 因此,我想定义一个级联策略,这样删除模块就会导致隐式删除所有相关命令

我使用的是Hibernate,我需要通过xml映射文件定义实体。 我正在使用以下配置:

在Module.hbm.xml中

    ....
    <list name="pendingCommands" table="COMMANDS" inverse="true" lazy="false" cascade="all">
        <key column="MODULE_ID" />
        <list-index column="COMMAND_IDX" />
        <one-to-many class="Command" />
    </list>
    ....
。。。。
....
在Command.hbm.xml中

    ....
    <many-to-one name="module" class="Module">
          <column name="MODULE_ID" not-null="true" />
    </many-to-one>
    ....
。。。。
....
这适用于hsqldb:通过
org.hibernate.Session.delete删除模块对象总是成功的,如果模块有相关的命令对象,hibernate会首先删除它们

但是,在MS SQL上,同样的操作似乎失败了,我得到了如下错误:
DELETE语句与引用约束“FKxxx”冲突。数据库“yyy”、表“dbo.COMMANDS”、列“MODULE\u ID”中发生冲突。

它真的是依赖于实现的行为吗? 我的配置中是否有需要更改的内容

提前感谢您提供的任何提示