从多个关系中删除表中的记录?

时间:2012-06-04 13:20:31

标签: java hibernate nhibernate-mapping

我正在使用hibernate多对多关联。我有3张桌子(学生,课程和学生_COURSE)。在3个表中,2个是主表,1个表是用于提供关系船的中间表。当从STUDENT删除记录时,将从STUDENT_COURSE中删除相应的映射。我的要求是它甚至应该从COURSE表中删除记录。 考虑STUDENT_COURSE条目如下:

S-Id  C_ID
101   201
102   202

当从STUDENT表中删除101时,删除上表中的第一个条目,但是COURSE表中对应于201的记录保持不变。我怎么能删除那条记录?我需要执行删除查询吗?许多关系船没有照顾吗? 以下是我的配置:

<set name="course" table="STUDENT_COURSE" 
            inverse="false" lazy="false" fetch="join" cascade="all" >
            <key>
                <column name="S_Id" not-null="true" />
            </key>
            <many-to-many entity-name="COURSE">
                <column name="C_Id" not-null="true" />
            </many-to-many>
        </set>

谢谢!

1 个答案:

答案 0 :(得分:1)

如果我删除了学生,你也想要删除相应的课程,好的就像你在Student上的学生hbm中的配置=&gt; inverse and cascade的STUDENT_COURSE映射,您在STUDENT_COURSE hbm中需要做的同样也适用于STUDENT_COURSE =&gt;课程映射。