Hibernate cascade

  在一对多,与多对一的关联映射中,我们去添加新的数据时既需要新增一的数据又需要新增多的数据,我们如果去只保存一个数据呢?我们需要加一个配置cascade。本文简单介绍cascade的用法。

cascade(级联):让操作级联的子实体,在操作一端数据时,可以级联操作为关联另一端的数据。

cascade (级联)的几个值:

  在多对一端使用

  1.save-uprate: 再保存和更新多的一端数据时,一的一端的数据可以一起保存和更新。(在新增时发现一端数据不存在时去保存,如果存在则不去保存)

  在这里我只保存了student的值,并没有保存gread的值,我们来看看执行的sql,发现sql中存在向gread表中新增数据。

 

  这里级联新增的gread的数据。

  2.none 默认为none 不级联。

    如果设置关联字段不为null的时候,将cscade保存为none的话,执行会报异常。

  3.delete 删除级联

    在多对一的关系中,不适合使用删除级联,因为我们不可能将唯一的数据删除。

  4.all 表示所有操作都级联

  在一对多端使用

  在这里主要说明delete操作

    在delete操作时,hibernte会先帮我们修改多对端的数据为null,然后删除多对端的数据,再删除一对端的数据,所有在这里,我们不能设置多对端的数据为非空,否则会报异常。

注:本文是在学习期间根据网上视频写的学习笔记,如有侵权请联系删除!

原文地址:https://www.cnblogs.com/wuyx/p/8011970.html