diff --git a/backend/services/data-management-service/src/main/java/com/datamate/datamanagement/application/DatasetApplicationService.java b/backend/services/data-management-service/src/main/java/com/datamate/datamanagement/application/DatasetApplicationService.java index 8f13ac5..7b7c0b4 100644 --- a/backend/services/data-management-service/src/main/java/com/datamate/datamanagement/application/DatasetApplicationService.java +++ b/backend/services/data-management-service/src/main/java/com/datamate/datamanagement/application/DatasetApplicationService.java @@ -113,9 +113,10 @@ public class DatasetApplicationService { if (Objects.nonNull(updateDatasetRequest.getStatus())) { dataset.setStatus(updateDatasetRequest.getStatus()); } - if (updateDatasetRequest.getParentDatasetId() != null) { - handleParentChange(dataset, updateDatasetRequest.getParentDatasetId()); - } + // 处理父数据集变更:始终调用 handleParentChange,以支持设置新的关联或清除关联 + // handleParentChange 内部通过 normalizeParentId 方法将空字符串和 null 都转换为 null + // 这样既支持设置新的父数据集,也支持清除关联 + handleParentChange(dataset, updateDatasetRequest.getParentDatasetId()); if (StringUtils.hasText(updateDatasetRequest.getDataSource())) { // 数据源id不为空,使用异步线程进行文件扫盘落库 processDataSourceAsync(dataset.getId(), updateDatasetRequest.getDataSource());