2016-09-18 6 views
0

多対1の関係に関与する2つのエンティティがコード内にあります。私はそれが言う親を削除しようとすると問題がある:NHibernate制約に違反した問題

ORA-02292:違反整合性制約 - 子レコードあなたは下記見ることができるように、私の中のユーザーのセキュリティパラメータ実体がある

を見つけました関連する子どもたちが例外的なユーザセキュリティパラメータと呼ばれるプロジェクトを作成できます。それは彼らの親

<bag name="ExeptionalUserSecurityParameters" inverse="true" lazy="false" access="property" cascade="none" batch-size="256"> 
     <key> 
     <column name="Key" /> 
     </key> 
     <one-to-many class="ExeptionalUserSecurityParameter"/> 
    </bag> 

<many-to-one name="UserSecurityParameter" cascade="all-delete-orphan" fetch="join" 
     class="UserSecurityParameters" > 
    <column name="Key" /> 
</many-to-one> 

を排除したい場合 私はORMが見つかった子レコードを削除するために期待するにはどうすればこの問題を回避することができますか?

答えて

1
ほとんど常に

(常に良く、私はこのようなカスケード使用しない:この問題を解決する必要があり

//<bag name="ExeptionalUserSecurityParameters" cascade="none" ... 
<bag name="ExeptionalUserSecurityParameters" cascade="all-delete-orphan" ... 

//<many-to-one name="UserSecurityParameter" cascade="all-delete-orphan" 
<many-to-one name="UserSecurityParameter" cascade="none" 

。コレクションの所有者が削除された場合、それを参照した人も削除されます。しかし、その逆ではない

関連する問題