Hibernate中(cascade和inverse)的區別

级联(Cascade),两个以上的设备通过某种方式连接起来,能起到扩容的效果就是级联。Hibernate级联(Cascade)是用来说明数据库中连个表之间的相互关系(一对一,一对多,多对多)中,当对主对象进行某种操作时,是否也对其关联的从对象作类似的操作,常见的级联(Cascade)有:
(1)none:在保存,删除或者修改当前对象时,不对其附属对象(关联对象)进行级联操作,它为默认值。
(2)save-update:在保存,更新当前对象时,级联保存,更新附属对象(临时对象,游离对象等)。
(3)delete:在删除当前对象时,级联删除附属对象
(4)all:所有情况下均进行级联操作,
(5)delete-orphan:删除此对象的同时删除与当前对象解除与当前对象解除关系的孤儿对象(仅仅使用于一对多关联关系中)

对Hibernate session的每一个基本操作,如:persist(),merge(),saveOrUpdate(),delete(),lock(),refresh(),evict(),replicate(),都有一个相关的级联形式与之对应。

inverse: 表示“是否放弃维护关联关系”(在Java里两个对象产生关联时,对数据库中表的影响),hibernate的缺省值为false。在<one-to-many>和<many-to-many>关联关系的集合定义中使用,inverse="true"表示该对象不维护关联关系。该属性的值在使用有序集合时(list,array等)时一般设置为false.<one-to-many>维护关联关系就是更新外键;<many-to-many>维护关联关系就是在中间表中增减记录!

cascade 和inverse的区别:
可以这样理解,cascade 定义的是关系两端对象到对象的级联关系;而inverse定义的是关系和对象的级联关系。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值