知识卡片
级联操作即声明所有权
内容
当两个对象通过关联绑定在一起时,需要显式声明对父对象的操作(保存、更新、删除)是否要 传播到子对象——这个声明本质上是在回答”谁拥有谁”:如果子对象的存在完全依附于父对象(专 辑被删除,它包含的曲目排列信息也该一并消失),就该开启级联;如果子对象可以脱离父对象 独立存在、甚至被多个父对象共享(同一首曲目出现在多张专辑里),就不该级联,否则删除一 张专辑会意外删掉其他专辑也在引用的曲目。这个”生命周期是否绑定”的判断,比数据表怎么连 接更重要,因为它决定了删除操作的爆炸半径。发散:这就是后来”聚合根”(Aggregate Root) 概念想表达的东西——聚合边界内的对象生命周期与根对象绑定,边界外的引用则只是关联,不 共享生命周期。
参考来源
《精通Hibernate》第5章《关联的生命周期》