在一对多,与多对一的关联映射中,我们去添加新的数据时既需要新增一的数据又需要新增多的数据,我们如果去只保存一个数据呢?我们需要加一个配置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,然后删除多对端的数据,再删除一对端的数据,所有在这里,我们不能设置多对端的数据为非空,否则会报异常。
注:本文是在学习期间根据网上视频写的学习笔记,如有侵权请联系删除!