对象脱钩关系解除
2025/9/14大约 1 分钟
对象脱钩关系解除
把对象之间的关联关系断开,也就是在内存或数据库层面上,不再维持原有的引用。
说明!!!
eq
的数据脱钩并不是无限级的,是根据用户制定的查询路径进行数据保存修改脱钩,数据脱钩删除不会无限级延伸到整个对象树上面,默认在保存中以聚合根为起始点以值对象聚合根或者保存路径为终点结束后续不再进行任何操作
脱钩种类
对象脱钩主要分为两大类
- 主动脱钩,有聚合根对象发起脱钩值对象,支持(
SET_NULL
和DELETE
) - 从动脱钩,由值对象发起脱钩聚合根,支持(
SET_NULL
)
这两种脱钩有如下区别
主动脱钩
主动脱钩有聚合根发起,比如bank
和bankCard
,主动保存聚合根bank的时候对bankCard
进行脱钩,可以是SET_NULL
,也可以是DELETE
,具体看数据库约束是否可以为null
从动脱钩
从动脱钩由值对象发起,比如bankCard和user,主动保持bankCard的时候发起和user的脱钩,但是这种脱钩只允许SET_NULL
脱钩,如果是DELETE
方式必须由聚合根发起