/*
删除主表数据
有从表数据
1.在默认情况下,会先把外键字段设置为null,再删除主表数据。
因此如果在数据库的表结构上,外键字段有非空约束,默认情况就会报错。
2.如果配置了放弃维护关联关系,则与设不设置非null就没有关系,一定不能删除。
3.最后如果需要删除,则需要进行使用级联删除引用。
无从表数据
没有限制,可以随便删除
级联操作:
案例:客户和联系人的案例(1对多的关系)
客户:一家公司
联系人:这家公司的员工
一个客户可以具有多个联系人
一个联系人从属于一家公司
分析步骤:
①明确表的关系
一对多的关系
②确定表类型(描述 外键|中间表)
主表:客户类
从表:联系人表
*再从表上添加外键
③编写实体类,在实体类中描述表关系(包含关系)
客户:在客户的实体类中包含一个联系人的集合
联系人:在联系人的实体类中包含一个客户的对象
④配置映射关系
*使用JPA注解配置一对多映射关系
级联:
操作一个对象的同时操作他关联的对象
级联操作:
①需要区分操作主题
②需要在操作主题的实体类上,添加级联属性(需要添加到多表映射关系的注解上)
③cascade(配置级联)
级联添加:
案例: 当保存一个客户的同时保存联系人
级联删除:
案例: 当删除一个客户的同时删除所有联系人
//CascadeType.all :所有
MERGE :更新
PERSIST :保存
REMOVE: 删除
@OneToMany(mappedBy = "blog",cascade = CascadeType.ALL)
private List<Comment> comments = new ArrayList<>();
还有一点 级联删除要把配置文件中的
jpa:
hibernate:
ddl-auto: update
最后一行改为update

探讨数据库中主从表关系下,如何通过级联操作实现数据的一致性管理,包括级联添加、删除和更新的策略。
2788

被折叠的 条评论
为什么被折叠?



