Hibernate(一)关于inverse与cascade的简单使用说明

inverse与cascade都是用于一对多,多对多关系的,一般会同时出现在维护关系的那一方,另一方失去控制权,用来描述两者间的关系。
要小心的是,若是开启了级联,控制方可以控制双方表和中间关系表,例如范围如果是save,两表是A,B,中间关系表是m表,A为控制方
那么好处在于:session.save操作时,往A中插入元素,会被认为是往3个表里插入新元素,与A相关的B中元素会检查没有后自动插入,与A相关的m中元素会检查没有后自动覆盖
坏处在于:注意对中间关系表m是覆盖,也就是说原先的数据可能会丢失,具体就是Hibernate会删掉关系表m中与A相关的B中元素相关的m中元素,如果是一对多关系就不会有这种情况,一对多可以放心使用级联。

1 inverse:

两者间的关系由谁来维持,默认是双方都可以维持这个中间关系,像多对多关系就会产生一个中间表,指明谁来维持这个关系表,可以节省性能,最好都是false。

直译为控制反转与否,默认值为false,false则控制权掌握自己手里,true则掌握他人手里,不能两个true,不然没人控制中间表,就会造成中间表没人更新的情况

2.cascade:级联更新的范围设置

inverse指明谁维持关系表后,cascade指明什么情况下可以对对方的表进行更新,注意不是中间表了
默认值为None
all: 所有情况下均进行关联操作,即save-update和delete。
none: 所有情况下均不进行关联操作。这是默认值。
save-update: 在执行save/update/saveOrUpdate时进行关联操作。
delete: 在执行delete 时进行关联操作。
all-delete-orphan: 当一个节点在对象图中成为孤儿节点时,删除该节点

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值