2017-08-29 101 views
0

我有父和子實體。現在,當我改變父實體中保持子實體完整的東西,然後當我在同一個會話中更新時,我觀察到它更新父實體中的更新字段以及所有子實體。如何更新所有更新的字段而不是整個繼承樹。在休眠狀態下更新父實體而不更新子實體

+0

你在說[髒檢查](https://vladmihalcea.com/2014/08/21/the-anatomy-of-hibernate-dirty-checking/)嗎?它確實不應該更新所有的字段。 – Kayaman

+0

是的,它更新了子實體的所有字段。當我在同一個會話中創建和更新實體時,預計會出現這種情況,因爲它只會更新增量。但是,當我用來獲取實體時,修改父實體的一些屬性,然後當我提交事務時,它使用更改的列更新父實體,並更新子實體的所有列。 – BigBang

+0

編輯你的問題,幷包括代碼的相關部分,以及你的實體的代碼。 – Kayaman

回答

1

看看您可以在子關聯映射中設置的Cascading Options。這是JPA允許您將父狀態轉換爲子狀態的方式。

+0

級聯並不意味着「即使沒有更改也更新子實體」。這並不能解決您希望避免對子實體進行無端更新的情況。 – Kayaman

+0

我沒有聲稱這似乎不是@ BigBang的問題。我也不認爲這個問題是關於「對孩子實體的無理更新」。這是關於從父母開始的不需要的級聯變化 – dimitrisli

+0

閱讀他的評論,似乎這正是他在談論的內容。不是關於級聯。 – Kayaman