我正在使用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>
谢谢!
答案 0 :(得分:1)
如果我删除了学生,你也想要删除相应的课程,好的就像你在Student上的学生hbm中的配置=&gt; inverse and cascade
的STUDENT_COURSE映射,您在STUDENT_COURSE hbm中需要做的同样也适用于STUDENT_COURSE =&gt;课程映射。