2012-07-11 27 views
2

對不起,如果這是顯而易見的,但我們現在已經好幾天了。在使用級聯刪除時,如何處理Hibernate中的可選關係?

考慮三個實體,父母,子女和X:

家長有@OneToMany與兒童的關係,成立了以級聯刪除和孤兒去除=真。

子級與可選= false的Parent有@ManyToOne關係,進一步的關係是@NotNull,@JoinColumn有nullable = false。

X與@ManyToOne的關係可選爲true。

以下是我們理想情況下在刪除父項時發生的情況。我們希望刪除級聯並刪除與刪除的父對應的所有子行。到目前爲止沒有問題。但是我們也希望任何引用任何被刪除的孩子的X來消除孩子關係。我們不想刪除任何X,我們只是想清除關係。這與「可選」關係是一致的。

我們如何在Hibernate中做到這一點?理想情況下,我們希望它是聲明式的,所以我們的業務邏輯不必「記住」將這些關係排除在外。實際上,如果我們要使用級聯,那麼它確實必須是聲明式的,因爲在我們遇到可選關係之前可能會有多級級聯。

任何提示?我們被難倒了....

回答

0

將集合映射到Child類中的X,並使用inverse = false

相關問題