hibernate中cascade属性以及inverse属性
级联操作 cascade
cascade的常用属性值
none 默认值 不做任何变动
save-update 保存或修改
delete 删除
all 包含save-update 和delete等行为
cascade 级联 操作级联到子实体,hibernate中一对多或者多对一中如果在一的一方
set中设置了cascade属性值为save-update
那么在操作一的一方同时也会更新或保存跟他联级的另一方,相对而言 如果属性值为delete 在执行一的一方删除操作时与当前相关的另一方也会被删掉,
如果 cascade属性设置了在多的一方也会有同样的作用需要注意的是多的一方cascade属性为delete的时候 不会执行删除操作 举个例子
部门与员工 一对多 一个部门可以有多个员工 一个员工只能属于一个部门 如果员工被删除了 那么与员工相关的部门也删掉 这显然不合适吧!所以cascade在多的一方 设置值为delete 不会执行删除而且会操作
set元素的 inverse 属性
术语 inverse 反转的意思 设定关系维护方 inverse属性有两个值 默认为false 当inverse=‘false’时 在hibernate 关联关系 谁管理关系谁维护 如果双方都管理 那么双方都维护 当关系有多的一方 来维护时 那么效率较高 如果关系有一的一方来维护时 会执行不必要的语句
如果inverse=‘true’时 那么关系由另一端来管理 不管一的一端是否指明关系 一的一端都不会管理