我正在使用EclipseLink 2.3.3。與約100個實體的數據模型。我有一個Java類映射到每個數據庫表使用註釋。JPA/EclipseLink:爲某些合併操作禁用級聯?
我有兩個用例來實現。其中之一是一個新的記錄進入了大約60-75張桌子的系統。對於這種情況,我想合併並持續級聯,以便我可以合併頂級對象並將其級聯到所有相關實體。
另一個用例是我需要插入一個單獨的對象集合,通常來自一堆不同的表中的每一個。在這種情況下,我不希望級聯合並,因爲我需要控制插入。如果啓用了級聯,則合併第一個對象可能會或可能不會合並其他對象,具體取決於它們是否相關,因此我寧願明確地合併它們中的每一個。
所以基本上,我想級聯合並並堅持在一種情況下,而不是另一種情況。因此,如果我在映射類中包含級聯註釋,則需要選擇性地禁用某些操作的級聯;或者,如果關閉映射類中的級聯,我想爲某些操作啓用級聯。
到目前爲止,我沒有找到任何方法來選擇性地打開或關閉特定操作的級聯。有一個CascadePolicy類,但似乎只能用於查詢。有動態實體,我想也許我可以用它來做一些事情,比如從現有實體創建一個動態實體,並關閉該實體關係的級聯行爲,並以某種方式將它用於合併,但我一直未能爲此找到合適的API。
所以我想知道是否有更好的答案,我可以忽略的地方?感謝您的任何信息。
任何想法如何使用NO_CASCADE? – Aguid