我在Thymeleaf & Springboot中有一個項目。Springboot數據架構設置
我需要知道在三個實體之間設置模式的最佳方式。
事件
項目
任務
的關係
事件到項目是多對一
項目,以事件爲一對多
項目到任務是一對多
任務以項目是多對一
實體
public Event() {}
@Id
private Long id
@ManyToOne(cascade = CascadeType.ALL)
private Project project;
public Project() {}
@Id
private Long id;
@OneToMany(mappedBy = "project", cascade = CascadeType.ALL, fetch = FetchType.EAGER)
private List<Task> tasks;
@OneToMany(mappedBy = "project")
private List<Event> event;
public Task() {}
@Id
private Long id;
@ManyToOne
private Project project;
由於它矗立在那一刻:
- 事件可以在事件UI創建並保存正確。
- 該項目的UI屏幕(其中包含事件的一些信息)可以創建一個項目,並在相同的用戶界面創建任務,但在點擊提交的所有信息進入數據庫,但任務表得到的任務,但FK PROJECT_ID是空的。
在獲取和發佈項目的控制器上,我將Event傳入模型中,因爲我需要計劃屏幕上Event的一些信息。
有沒有更好的方式來顯示計劃用戶界面的一些信息,但事件但CRUD計劃。 爲什麼FK project_id是空的?
UPDATE
我曾嘗試:
public Task() {}
@Id
private Long id;
@ManyToOne(optional = false)
@JoinColumn(name = "project_id")
private Project project;
仍然無法獲得任務表PROJECT_ID。
關於這個問題的UI部分:你如何設計您的用戶界面是您的業務,它應該儘可能獨立於您的後端架構對用戶有所幫助。您正在爲用戶構建用戶界面*,而不是爲您的服務器構建自己的鞋子。但你提交頁面上的所有信息似乎很奇怪。通常情況下,REST與Ajax調用並行 – GabiM