Skip to content

Conversation

@soladuor
Copy link

@soladuor soladuor commented Mar 6, 2025

每次子表更新时都会全部删除再重建

逻辑上没问题,但子表使用逻辑删除时,数据库中会产生很多重复的脏数据

于是参考cn.iocoder.yudao.module.system.service.permission.PermissionServiceImpl#assignRoleMenu方法,封装了一个通用的子表批量更新方法

处理逻辑如下:

  1. 带id的数据 => 需要修改
  2. 没有id的数据 => 需要添加
  3. 数据库里有这个id,但前端传过来的数据没有 => 需要删除

顺便把该方法加到代码模板里了

soladuor added 2 commits March 6, 2025 16:16
每次子表更新时都会全部删除再重建
逻辑上没问题,但子表使用逻辑删除时,数据库中会产生很多重复的脏数据
于是参考`cn.iocoder.yudao.module.system.service.permission.PermissionServiceImpl#assignRoleMenu`方法,封装了一个通用的子表批量更新方法
处理逻辑如下:
1. 带id的数据 => 需要修改
2. 没有id的数据 => 需要添加
3. 数据库里有这个id,但前端传过来的数据没有 => 需要删除
注:使用 == null 判断而不是 isEmpty,是因为可能有些场景下,需要清空子表
@YunaiV
Copy link
Owner

YunaiV commented Jun 15, 2025

感谢建议。暂时不考虑采用这种哈

还是直接代码里写了。。。谢谢

@YunaiV YunaiV closed this Jun 15, 2025
@YunaiV
Copy link
Owner

YunaiV commented Jun 15, 2025

另外,diff + 更新,已经支持啦。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants