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’时  那么关系由另一端来管理 不管一的一端是否指明关系 一的一端都不会管理

上一篇:阿里P8架构师讲述:3—5年程序员的发展和出路在哪里?


下一篇:su root 和su - root 的区别