1

我正在使用休眠多对多关联。我有 3 张桌子(STUDENT、COURSE 和 STUDENT_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>

谢谢!

4

1 回答 1

1

如果我删除学生,您还想删除相应的课程,好的,就像您在 Student hbm 中对 Student => STUDENT_COURSE 映射进行inverse and cascade配置一样,您也需要在 STUDENT_COURSE hbm 中为 STUDENT_COURSE => COURSE 映射执行相同的操作。

于 2012-06-04T13:34:37.680 回答