天天看點

hibernate 級聯失敗的一種可能原因

【異常】在一對多的配置中,配置了級聯cascade=“all-delete-orphan”,但是依然報錯,異常資訊是多的一端的引用一的一端的字段(相當于外鍵的那個字段)r_id不能為null。

【分析】cascade=“all-delete-orphan”這樣的配置是沒有錯誤的,inverse也是一的一端為false,這都是沒有問題的。可是為什麼會出現這個問題呢?仔細看下hibernate輸出的sql語句,第一句是将r_id設定為null,然後才是删除資料和關聯資料。在第一句執行的的時候就出現了異常,後兩句沒列印出來。由此分析,原因是我在資料庫建立時為r_id加了not null限制,造成hibernate無法解除關聯關系

【總結】外鍵字段的not null限制可造成hibernate級聯失敗

希望能幫到有同樣問題的大家

繼續閱讀