在平常的数据库建设中,我们经常回为了简化表的设计使其显得不太臃肿,而采取外键字段的方式建立两张表之间的联系。
在hibernate中,这一关系通过onetomany的方式实现。下面看看什么是级联删除:
级联删除: 即删除一的一方后,在多的一方中引用到一的一方的主键的全部记录将会被删除(在一的一方的配置文件中set节点进行配置)。他有两个主要用到的属性:
(1)cascade:cascade的值有四个,如使用all表示对所有操作都级联;
(2)inverse:把set节点的属性inverse的值改为true;即关系由对方控制。
给配置文件加上配置信息例下:
一的一方:
<set name=”多的一方的表名(hibernate中写实体名)” inverse=”true” cascade=”all”>
<key>
<column name=”一的一方的主键” not-null=”true”/>
<one-to-many class=”类的完整路径”/>
</key>
</set>
多的一方:
<many-to-one name=”一的一方的表明(hibernate中为实体名)” class=”类的完整路径”/>
<column name=”一的一方的主键” not-null=”true” />
</many-to-one>
好了,这时如果我们删除一的一方,那么引用他主键作为外键的记录也将被删除。