0
有三個表,t1, t2
和t3
。 t1由t2.fk2
引用,並且t2由t3.fk3
引用。第一個關係設置爲Cascading.ALL
,因此移除t1的一行將同時刪除t2的一個相關行。但是如何在刪除t2時設置t3的空值? (t2可以直接刪除,並且級聯從t1的刪除中刪除)。在級聯刪除時設置爲空
這可以很容易地在MySQL中完成,但在JPA中我真的不知道該怎麼做。我找了個答案,並且@PreRemove
,orphanRemoval=true
能解決我的問題嗎?
感謝十億!
你必須自己動手。獲取將要移除的t2的t3,並將它們的t2設置爲null。 –
@JBNizet非常感謝!手動設置字段非常簡單,並且很有用!這裏的教訓是,當考慮到JPA/Hibernate是一個ORM映射器時,事情很清楚並且更容易解決。 – frogcdcn
您是否嘗試過使用定義JPA 2.1 ForeignKey並設置「ON DELETE NULL」? –