hibernate中的inverse和cascade属性

项目中遇见inverse属性,便顺带着复习了一遍inverse属性和cascade属性的用法,网上查了一些,对比了一下笔记,觉得前者不甚严谨,终究以笔记里的内容为准

Inverse属性

Inverse属性(默认为false),是在维护关联关系的时候起作用的。

       表示控制权是否转移。(在一的一方起作用)

 

Inverse , 控制反转。

Inverse = false  不反转;   当前方有控制权

True  控制反转; 当前方没有控制权

 

维护关联关系中,是否设置inverse属性:

1. 保存数据

有影响。

   如果设置控制反转,inverse=true, 然后通过部门方维护关联关系。在保存部门的时候,同时保存员工, 数据会保存,但关联关系不会维护。即外键字段为NULL

2. 获取数据

无。

3. 解除关联关系?

有影响。

inverse=false,  可以解除关联设值为null)

inverse=true,  当前方(部门)没有控制权,不能解除关联关系

(不会生成update语句,也不会报错)

4. 删除数据对关联关系的影响?

有影响。

inverse=false, 有控制权, 可以删除。先清空外键引用,再删除数据。

inverse=true,  没有控制权: 如果删除的记录有被外键引用,会报错,违反主外键引用约束!  如果删除的记录没有被引用,可以直接删除。


cascade 属性

cascade  表示级联操作  【可以设置到一的一方或多的一方】

none          不级联操作, 默认值

save-update     级联保存或更新

delete   级联删除

save-update,delete    级联保存、更新、删除

all                 同上。级联保存、更新、删除


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值