You've already forked DataMate
fix: 修复编辑数据集时无法清除关联数据集的问题
问题描述: 在数据管理的数据集编辑中,如果之前设置了关联数据集,编辑时选择不关联数据集后保存不会生效。 根本原因: 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 也会更新到数据库
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
package com.datamate.datamanagement.domain.model.dataset;
|
package com.datamate.datamanagement.domain.model.dataset;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.FieldStrategy;
|
||||||
import com.baomidou.mybatisplus.annotation.TableField;
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
|
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
|
||||||
@@ -31,6 +32,7 @@ public class Dataset extends BaseEntity<String> {
|
|||||||
/**
|
/**
|
||||||
* 父数据集ID
|
* 父数据集ID
|
||||||
*/
|
*/
|
||||||
|
@TableField(updateStrategy = FieldStrategy.IGNORED)
|
||||||
private String parentDatasetId;
|
private String parentDatasetId;
|
||||||
/**
|
/**
|
||||||
* 数据集类型
|
* 数据集类型
|
||||||
|
|||||||
Reference in New Issue
Block a user