【发布时间】:2020-05-17 00:44:05
【问题描述】:
我需要将输入作为 WorkflowCloneRequestDTO 类中的唯一名称,并且所有实例都需要自己复制。我正在尝试通过已经存在的 url 发布邮递员的姓名和 id。
但是数据不是克隆的。我不明白问题出在哪里
这是控制器类:
@PostMapping("{id}/duplicate")
@ResponseBody
public WorkflowViewDTO duplicateWorkFlow(@PathVariable Long id, @RequestBody @Valid WorkflowCloneRequestDTO cloneRequest, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
throw new ControllerException(bindingResult, Constants.INPUT_VALIDATION_ERROR);
}
return workFlowService.cloneWorkflow(id, cloneRequest);
}
这个服务类:
public WorkflowViewDTO cloneWorkflow(Long id, WorkflowCloneRequestDTO workflowCloneRequestDTO) {
Workflow workflow = workflowDAO.findById(id);
if (workflow == null) throw new ServiceException(ErrorEnum.WORKFLOW_NOT_FOUND);
Workflow duplicateWorkFlow = SerializationUtils.clone(workflow);
duplicateWorkFlow.setId(null);
//duplicateWorkFlow.setId(null);
duplicateWorkFlow.setName(workflowCloneRequestDTO.getName());
duplicateWorkFlow.setIsActive(true);
duplicateWorkFlow = workflowDAO.save(duplicateWorkFlow);
return duplicateWorkFlow.getView(WorkflowViewDTO.class);
}
【问题讨论】: