Inverse属性
Inverse属性,是在维护关联关系的时候起作用的。
表示控制权是否转移。(在一的一方起作用)
Inverse , 控制反转。
Inverse = false 不反转; 当前方有控制权
True 控制反转; 当前方没有控制权
维护关联关系中,是否设置inverse属性:
1.保存数据
有影响。
如果设置控制反转,即inverse=true,
然后通过部门方维护关联关系。在保存部门的时候,同时保存员工,数据会保存,但关联关系不会维护。即外键字段为NULL
2.获取数据
无。
3.解除关联关系?
有影响。
inverse=false,
可以解除关联
inverse=true,
当前方(部门)没有控制权,不能解除关联关系
(不会生成update语句,也不会报错)
4.删除数据对关联关系的影响?
有影响。
inverse=false,有控制权, 可以删除。先清空外键引用,再删除数据。
inverse=true, 没有控制权: 如果删除的记录有被外键引用,会报错,违反主外键引用约束! 如果删除的记录没有被引用,可以直接删除。
cascade 属性
cascade 表示级联操作 【可以设置到一的一方或多的一方】
none 不级联操作, 默认值
save-update 级联保存或更新
delete 级联删除
save-update,delete 级联保存、更新、删除
all 同上。级联保存、更新、删除
hibernate常见面试题: inverse与cascade区别?
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-10-06 11:08:40