【Hibernate学习】——级联操作

        级联策略:负责控制关联两端对象到对象的级联关系的操作,包括更新、删除等,也就是说对一个对象进行更新、删除时,其它对象也受影响,比如我删除一个对象,那么跟它是多对一关系的对象也全部被删除。

 

         在前面用了抓取策略之后,后面试了一下级联操作的注解:cascadeType.MERGE方式

@OneToOne(cascade={CascadeType.MERGE})

@JoinColumn(name="company_id")

publicCompany getCompany() {

return company;

}

publicvoid setCompany(Company company) {

this.company= company;

}

        CascadeType.MERGE级联更新,级联操作通常是对实体的增删改查的操作,而抓取策略体现的是关联对象,主要体现在查上面。

 

        此外级联还有以下几种:  

                 CascadeType.REFRESH:级联刷新,当多个用户同时作操作一个实体,为了用户取到的数据是实时的,在用实体中的数据之前就可以调用一下refresh()方法!

                  CascadeType.REMOVE:级联删除,当调用remove()方法会先删除主键表,再删除外键表!

                  CascadeType.MERGE:级联更新

                  CascadeType.ALL:包含以上所有级联属性。

                  以上几种级联操作,只能实在满足数据库的约束时才能生效。

 

        这些策略,注解都是灵活配置的,有很多参数供我们选择,需要哪个类型的就直接拿过来用就可以了。很方便,设置哪个参数一目了然。

 

        首先我声明一点,这个级联操作和我们之前理解的级联操作是一样的,只不过我们在这里用了注解的形式而已。现在这样用和我们以前用的区别是,以前我们是直接针对于数据库来的,如果是直接针对于数据库的话相当于是写死了;现在用Hibernate的注解的方式,是对象与对象之间的关系,面向对象了,更灵活了。如果是对象的操作的话那么我们的实体肯定是灵活的,不要写死,写死了感觉和之前的数据库的方式一样的。

 

         虽然说级联的操作方便了我们对数据的操作,但是我们还是不能依赖于它,如果数据量特别大或者是多对多的关系,级联也会很慢。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 20
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值