2017-01-16 54 views
1

我有两个实体class.one是PhaseEntity,另一个是TaskEntity。 PhaseId将是TaskEntity类的外键。我可以创建该值并将其保存到数据库,但无法更新数据库。 部分TaskEntity类:更新数据库ManytoOne关系(Spring Boot + MVC + Thymeleaf)

@ManyToOne(optional=false) 
    @JoinColumn(name="phaseId") 
    private PhaseEntity phaseEntity; 

控制器类:

public class TaskController { 
    @Autowired 
    private TaskService taskService; 
    @Autowired 
    private PhaseService phaseService; 
    @RequestMapping(value="/task/create",method=RequestMethod.GET) 
    public String createForm(Model model,Principal principal){ 
     model.addAttribute(new TaskEntity()); 
     model.addAttribute("body", "task/task-create"); 
     model.addAttribute("generaltaskDto",new GeneralTaskDto()); 
     model.addAttribute("phaseEntities", phaseService.phaseList()); 
     return "layouts/default"; 

    } 
@RequestMapping(value="/task/create",method=RequestMethod.POST) 
    public String createFormPost(Model model,GeneralTaskDto generaltaskDto,BindingResult result){ 
     TaskEntity taskAndPhase=generaltaskDto.getTaskEntity(); 
taskAndPhase.setPhaseEntity(phaseService.getPhaseByPhaseId(generaltaskDto.getPhaseId())); 
     taskService.saveTask(taskAndPhase); 
     return "redirect:/task/list"; 
    } 
@GetMapping(value="/task/update/{id}") 
    public String updateTask(Model model,@PathVariable String id){ 
     TaskEntity taskEntity= taskService.getTaskId(Integer.parseInt(id)); 
     model.addAttribute("body", "task/task-create"); 
     model.addAttribute("phaseEntities", phaseService.phaseList()); 
     return "layouts/default"; 
     } 

GeneraltaskDto类:

public class GeneralTaskDto { 
     private TaskEntity taskEntity=new TaskEntity(); 
     private Integer phaseId; 
     public TaskEntity getTaskEntity() { 
      return taskEntity; 
     } 
     public void setTaskEntity(TaskEntity taskEntity) { 
      this.taskEntity = taskEntity; 
     } 
     public Integer getPhaseId() { 
      return phaseId; 
     } 
     public void setPhaseId(Integer phaseId) { 
      this.phaseId = phaseId; 
     } 


} 

here is the client page of the application

谁能帮助PLZ如何更新与控制器请求数据库。提前致谢。

回答

0

请尝试在行之后在您的控制器中添加updateTask方法中的这些行。

PhaseEntity phaseEntity=taskEntity.getPhaseEntity(); 
generaltaskDto.setTaskEntity(taskEntity); 
generaltaskDto.setPhaseId(phaseEntity.getPhaseId()); 
model.addAttribute("generaltaskDto", generaltaskDto); 
相关问题