Java 是否从多对多关系中的表中删除记录?

Java 是否从多对多关系中的表中删除记录?,java,hibernate,nhibernate-mapping,Java,Hibernate,Nhibernate Mapping,我正在使用hibernate多对多关联。我有三张桌子(学生桌、课程桌和学生桌)。在3个表中,2个是主表,1个是中间表,用于提供关系。当从学生中删除记录时,相应的映射将从学生课程中删除。我的要求是它甚至应该从课程表中删除记录。 考虑学生课程条目如下: S-Id C_ID 101 201 102 202 当从学生表中删除101时,上表中的第一个条目被删除,但课程表中对应于201的记录保持不变。如何删除该记录?我是否需要执行删除查询?多对多关系不在意吗? 以下是我的配置: <set

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

S-Id  C_ID
101   201
102   202
当从学生表中删除101时,上表中的第一个条目被删除,但课程表中对应于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>


谢谢

如果我删除了一名学生,您也希望删除相应的课程,就像您在Student=>Student\u课程映射中对
反向和级联
所做的配置一样,同样,您也需要在STUDENT_COURSE hbm中为STUDENT_COURSE=>课程映射执行此操作。

如果我删除一名学生,您也要删除相应的课程,就像您在STUDENT hbm on STUDENT=>STUDENT_COURSE mapping中为
反向和级联
执行的配置一样,同样,您需要在学生课程hbm中对学生课程=>课程映射进行操作。

学生方面的关系如何?你也有cascade=“all”吗?@Korgen谢谢你的回复。以上配置仅适用于学生hbm。对不起,我的意思是在课程方面…课程方面我没有任何设置。我的要求是,即使课程被删除,学生也不应该被删除,但如果学生被删除,那么课程应该被删除。你说“课程方面我没有任何设置”是什么意思。。。你没有课程的hbm档案吗?您的对象图是否正确加载(即,如果加载一名学生,其课程将被填充)?学生端的关系如何?你也有cascade=“all”吗?@Korgen谢谢你的回复。以上配置仅适用于学生hbm。对不起,我的意思是在课程方面…课程方面我没有任何设置。我的要求是,即使课程被删除,学生也不应该被删除,但如果学生被删除,那么课程应该被删除。你说“课程方面我没有任何设置”是什么意思。。。你没有课程的hbm档案吗?对象图是否正确加载(即,如果加载学生,其课程将被填充)?