我有@OneToMany
JPA與具有WorkExperience
的多個實例的Curriculum
實例的關聯。在該實體本身之前堅持/保存JPA實體的關係
的Curriculum
JPA實體:
@Entity
public class Curriculum {
...
@OneToMany
private Set<WorkExperience> workExperiences;
...
的WorkExperience
JPA實體:
@Entity
public class WorkExperience {
...
我本來想與其一起WorkExperiences堅持課程的persist方法之一EntityManager的電話。
然而,鑑於我是如何設計的Web UI的操作流程,我現在想另一種情況是否可能無法即:
堅持的WorkExperiences到數據庫,然後再當用戶填寫的主要課程實體的細節,以:
設置(已在DB)現有WorkExperience實例課程實例(不以dB爲單位尚)和
- 持續整個對象圖:課程w^ith工作經驗。
這有道理嗎?我想到了幾個缺點,例如如果用戶選擇不堅持Curriculum實例會發生什麼?如何清理WorkExperience表中的懸掛線?
是否有替代品或更好的模式?例如,在用戶驗證表單之前預先保存課程實例是個好主意嗎?
感謝您的回覆Kostja。好的,但我在哪裏可以在課程最終保存之前存儲WorkExperience的獨立實例? – balteo
@balteo將它們放入獨立課程實體內的'Set'中,所以持久化將被級聯。我不熟悉Spring MVC,但是我認爲你有一個控制器用於實例化你的視圖,並且有一個處理表單提交的方法。這個控制器是我在堅持之前存儲課程實體的地方。對於用戶創建新實體的視圖,我通常在控制器的實例化過程中創建一個空實體,對其進行操作,然後在成功提交後保留它。 – kostja
呃。 Spring MVC控制器是單身人士。將狀態置於Singleton中並不是一個好主意。我想過使用會話存儲,但它也不是一個好主意...... – balteo