Hibernate一对多、多对多关系级联删除时,二级缓存该如何处理?

本文探讨了在应用中如何维护树形结构的菜单(Menu)与模块(Module)之间的多对一关系,在删除菜单时如何优雅地同步更新模块的菜单集合(menuSet),并减少重复代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在我的应用中菜单(Menu)这个持久化对象是组织成树形结构的,Menu与另一对象Module有对应关系,Menu与Module是多对一的,一个Module对应于多个Menu,其对应关系由Module中的menuSet维护。
在删除某个Menu对象时,其子节点应该被级联删除,这样就引出了一个问题,我如何来维护Module中的那个menuSet(这个模块对应的菜单)?假设在删除前,所有对象都已经处于二级缓存中。
我现在知道的只有两种办法:
1、清空这两个对象的二级缓存
2、笨的办法,遍历所有要删除的Menu节点,将这些节点从对应的Module.menuSet集合中删除。
另外,这种维护二级缓存的代码有没有一个优雅一点的处理办法,我现在感觉是在头痛医头脚痛医脚,哪里有这个问题,就在哪里处理。很多地方都有重复的代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值