을 삭제 계단식으로하지 않습니다 아이의 아이는 아이의 세트입니다. (관련 부분)NHibernate에 내가 (내가 이름을 간체) 부모의 아이가 부모의 집합입니다</b><br> & 자녀의 자녀 부모의 자녀, <b>부모의 이름, 3 개체가</p> <p>, 시나리오는 다음과 같다 어린이
부모를 다음과 같이
매핑입니다
<set name="parentset"
table="pc-table"
lazy="false"
fetch="subselect"
cascade="all-delete-orphan"
inverse="true">
<key column=FK_ID_PC" on-delete="cascade"/>
<one-to-many class="parentchild,parentchild-ns"/>
</set>
부모의 자녀
<set name="childset"
table="cc-table"
lazy="false"
fetch="subselect"
cascade="all-delete-orphan"
inverse="true">
<key column="FK_ID_CC" on-delete="cascade"/>
<one-to-many class="childschild,childschild-ns"/>
</set>
무엇 내가 달성하고자하는 것은 내가 부모를 삭제하면이 될 것이라고 캐스케이드는 모든 길을 아이의 아이에게 지워줍니다. 그러나 현재 일어나는 것은 이것입니다.
(이 매핑 테스트 목적으로 순전히) 부모 엔티티를 받고 (잘 작동) 지금
IQuery query = session.CreateQuery("from Parent where ID =" + ID);
IParent doc = query.UniqueResult<Parent>();
삭제 부분
session.Delete(doc);
transaction.Commit();
'null 값을 삽입 할 수 없습니다'해결 한 후 계단식 및 반전 오류가 이제이 코드를 사용하여 모든 것을 삭제하지만 부모 만 삭제됩니다.
내가 그리워 할지도 모르는 매핑에 뭔가 빠졌습니까? 올바른 방향으로 어떤 힌트라도 환영합니다!
디에고, 요점 답변에 감사드립니다.
on-delete="cascade"
을 제거했다. 왜냐하면 나는 코드에서 가능한 한 많은 제어를하고 데이터베이스에서는 그렇지 않기 때문이다.
아래에 게시 된 코드는 (작업 중) 결과입니다.
부모
<set name="parentset"
table="pc-table"
cascade="all-delete-orphan"
inverse="true"
batch-size="5">
<key column=FK_ID_PC"/>
<one-to-many class="parentchild,parentchild-ns"/>
</set>
부모의 자녀
<set name="childset"
table="cc-table"
cascade="all-delete-orphan"
batch-size="5"
inverse="true">
<key column="FK_ID_CC">
<one-to-many class="childschild,childschild-ns"/>
</set>
희망이 같은 문제를 가진 사람들을 도와줍니다!