我有以下情形。使用從JPA到子級對象的級聯使用JPA
我們在我們的域中有兩個對象,它們構成父子關係。
人是父母,角色是孩子。這兩個對象來自同一個祖先。
不是將關係建模爲雙向,而是隻包含表示爲long的父對象Id。
父項具有到子項的@oneToMany映射。
我們遇到的問題如下所示:域層當前創建並持久保留子項,然後僅將父項的ID更新到自身上。
然而,這種方法的問題是,已經加載到持久性上下文中的Person不會被這個新角色重新渲染。這種方法正在我們的應用程序中造成混亂,因爲我們試圖在單個事務中進行多項操作。我們也無法利用二級緩存。我們希望創建一個雙向關係,但是我不清楚處理子對象的最佳方法是什麼。
我所看到的所有建議都表明應該保存父對象,然後這應該級聯到孩子。還建議所有級聯類型都應該遵循這種方法。所以對孩子的改變是通過父母來堅持的。
然而,我並不是在質疑這種方法,因爲已經有一個實現,是否可以從子級級聯到父級?我會想象這應該適用於合併和刷新?這似乎是一種可行的方法,用於將持久化上下文與對象的更改同步,而無需更改底層實現,而不必添加@ManyToOne批註。
我歡迎任何意見或建議。
謝謝!您是否需要刷新L1和L2(如果正在使用中),還是需要刷新L1緩存也刷新L2緩存? –
默認情況下,EclipseLink默認使用L2緩存,但我不確定它是否也適用於集合。如果您不使用收集緩存,則無需刷新父項。 –