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