You've already forked DataMate
问题描述: 在数据管理的数据集编辑中,如果之前设置了关联数据集,编辑时选择不关联数据集后保存不会生效。 根本原因: MyBatis-Plus 的 updateById 方法默认使用 FieldStrategy.NOT_NULL 策略, 只有当字段值为非 null 时才会更新到数据库。 当 parentDatasetId 从有值变为 null 时,默认情况下不会更新到数据库。 修复方案: 在 Dataset.java 的 parentDatasetId 字段上添加 @TableField(updateStrategy = FieldStrategy.IGNORED) 注解, 表示即使值为 null 也需要更新到数据库。 配合前端修改(恢复发送空字符串),现在可以正确清除关联数据集: 1. 前端发送空字符串表示"无关联数据集" 2. 后端 handleParentChange 通过 normalizeParentId 将空字符串转为 null 3. dataset.setParentDatasetId(null) 设置为 null 4. 由于添加了 IGNORED 策略,即使为 null 也会更新到数据库