2
我在Project
和Requirement
實體之間有一對多的關係。當級聯=「全部刪除 - 孤立」的集合在更新時不再被擁有實體實例引用
HTML:
<div class="container">
<div class="row">
<div class="col-sm-2"></div>
<div class="col-sm-8">
<form action="#" th:action="@{/projects/updateProject/(id=${project.id})}" method="post">
<input hidden="hidden" name="id" th:value="${project.id}" />
<div class="form-group">
<label>Project</label>
<input type="text" name="projectNaam" class="form-control" id="projectName" th:value="${project.projectName}" placeholder="Project" />
</div>
<button type="submit" class="btn btn-default">Submit</button>
</form>
</div>
<div class="col-sm-2"></div>
</div>
</div>
這是Project
我控制器代碼:
@RequestMapping(value = "/updateProject", method = RequestMethod.POST)
public String updateProject @ModelAttribute("project") Project project){
this.projectService.saveProject(project);
return "redirect:/projects";
}
這是我Project
類:
@Entity
@Table(name = "Project")
public class Project {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
private String projectName;
@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL, orphanRemoval = true)
@JoinColumn(name = "project_id")
private Set<Requirement> requirements;
public Project(){
}
public Project(String projectName) {
this.projectName = projectName;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getProjectName() {
return projectName;
}
public void setProjectName(String projectName) {
this.projectName = projectName;
}
public Set<Requirement> getRequirements(){ return requirements; }
public void setRequirements(Set<Requirement> requirements){ this.requirements = requirements; }
更新項目時,我得到的錯誤(只更新名稱)。 已經在互聯網上尋找解決方案,但沒有找到一個適合我的工作。
感謝您的反饋!你的第一點:我應該將項目與其要求合併?你的第二點:我想要連接是單向的。我可以通過以下方式實現此目的:在編輯時保存項目之前,檢索項目的當前需求,將其添加到從參數獲取的Project對象中?最後保存? – Urban
是,只要您檢索需求並使用相同的事務處理方法執行項目的保存/合併即可。 –