MySql和Hibernate中关于cascade的用法
数据库里的cascade的用法,Mysql和Hibernate里面是不相同。 在数据库里,进行增加、修改、删除记录的时候,经常会涉及到父子关系的表。 例如:有省份表和城市表,其中城市表有一个外键province_id引用到省份表的主键。这样,可以把省份表看成是父表,把城市表看成是子表,城市表记录的存在依赖于省份表的记录。(文中提到的例子,所有的代码在附件里都有,所以这里的描述从简) 一、在MySQL里的cascade 以下直接在MySQL的控制台操作省份表和城市表 在省份表增加一条“广东”的记录,在城市表增加一条“广州”的记录,并且把“广州”的外键引用到“广东”的主键。“广州”的存在依赖于“广东”,如果删除省份表的“广东”,将会影响到城市表的“广州”。根据城市表的外键约束的on delete设置,有如下三种情况: 1、外键没有on delete的设置:当删除“广东”的时候,MySQL会报错,删除失败。 2、外键设置为on delete cascade:当删除“广东”的时候,同时把“广州”也删除。 3、外键设置为on delete set null:当删除“广东”的时候,“广州”的外键province_id会被自动设置为null,即“广州”脱离了对“广东”的依赖关系。 二、在Hibernate里的cascade 以下用Hibernate来操作省份表和城市表 首先,在hibernate