我有兩個班,首先是 「聚合/老闆/不管」 類:JPA:外部ID不會自動設置
@Entity
@Table(name = "project")
public class Project {
@Id
@GeneratedValue
private Long id;
@OneToMany(mappedBy = "project", cascade = CascadeType.PERSIST, fetch =
FetchType.EAGER)
private List<Workspace> workspaces;
這裏的 「聚集」:
@Entity
@Table(name = "workspace")
public class Workspace {
@Id
@GeneratedValue()
private Long id;
@ManyToOne()
@JoinColumn(name = "id_project", referencedColumnName = "id", foreignKey = @ForeignKey)
private Project project;
這裏是一些例子結構,我想堅持:
Project
{
description:"SOMETHING",
id:null,
name:"Project Name",
workspaces:[{id: null, name: "Somenthing", description: "Workspace Name", }]
}
我收到的位置:
@RestController
@RequestMapping("projectRest")
public class ProjectRestController {
@PostMapping("/create")
public ResponseEntity<String> create(@RequestBody Project project) {
try {
service.insert(project);
return new ResponseEntity<>("OK", HttpStatus.OK);
} catch (Exception ex) {
return new ResponseEntity<>(ex.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR);
}
}
我不會改變任何東西,直到我保存在一個這樣的類:
public void save(Project model) throws RuntimeException {
this.getSession().persist(model);
}
這對我的工作區表 節省像我想要的一切,在我的數據庫,除由id_project關係列,因此,我的工作區正在失去其項目的參考,我不知道我做錯了
因爲你不報你怎麼說,你傳遞給em.persist則不是對象相關聯任何人都可以說。 –
您可以參考https://stackoverflow.com/questions/13684963/creating-a-foreign-key-constraint-in-jpa-and-hibernate這篇文章 – Akash
@NeilStockton這是因爲我沒有做任何明確的,我接受項目對象的工作空間在我的控制器對象中,我什麼都不做。我需要做更多的事情? –