q792602257
699031dae7
fix: 修复编辑数据集时无法清除关联数据集的编译问题
问题分析:
之前尝试使用 @TableField(updateStrategy = FieldStrategy.IGNORED/ALWAYS) 注解
来强制更新 null 值,但 FieldStrategy.ALWAYS 可能不存在于当前
MyBatis-Plus 3.5.14 版本中,导致编译错误。
修复方案:
1. 移除 Dataset.java 中 parentDatasetId 字段的 @TableField(updateStrategy) 注解
2. 移除不需要的 import com.baomidou.mybatisplus.annotation.FieldStrategy
3. 在 DatasetApplicationService.updateDataset 方法中:
- 添加 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper
- 保存原始的 parentDatasetId 值用于比较
- handleParentChange 之后,检查 parentDatasetId 是否发生变化
- 如果发生变化,使用 LambdaUpdateWrapper 显式地更新 parentDatasetId 字段
- 这样即使值为 null 也能被正确更新到数据库
原理:
MyBatis-Plus 的 updateById 方法默认只更新非 null 字段。
通过使用 LambdaUpdateWrapper 的 set 方法,可以显式地设置字段值,
包括 null 值,从而确保字段能够被正确更新到数据库。
2026-02-03 11:09:15 +00:00
..
2025-12-30 18:48:43 +08:00
2026-01-27 18:11:30 +08:00
2026-02-03 11:09:15 +00:00
2026-01-31 19:15:21 +08:00
2025-12-22 15:41:17 +08:00