知识卡片

级联操作的含义与风险

专业/工作 · 621.c

内容

级联操作(cascade)描述的是”操作一个实体时,与它关联的实体要不要跟着一起变化”:级联保存让子实体随父实体一起写入,级联删除让子实体随父实体一起清除,级联合并让子实体随父实体的更新而同步更新。级联的价值在于省去手动维护关联实体状态的重复代码,但风险也恰恰在这里——一旦级联范围设置过宽(比如级联删除设置在不该设置的方向上),删除一条记录可能意外带走一整片关联数据,而这种破坏往往在开发阶段用小数据测试时不会暴露。发散:级联本质上是把”关联对象的生命周期该不该被主控对象决定”这一设计决策显式声明出来,配置前要先想清楚这段关系在业务上究竟是”强依附”还是”松散引用”。

参考来源

《Spring Boot应用开发实战》第4章《数据库与持久化技术》