'FormSubmission'엔티티와 일대일 매핑이있는 'Interview'엔티티가 있는데 인터뷰 엔티티는 지배적 인 측면 말하자면, 매핑은 다음과 같습니다Nhibernate - 고아를 삭제하지 않고 계단식 모든 삭제 고아가있는 일대일 매핑
<class name="Interview">
<id name="Id" column="Id" type="Int64">
<generator class="identity" />
</id>
// other props (snip)....
<one-to-one name="Submission" class="FormSubmission"
cascade="all-delete-orphan" />
</class>
<class name="FormSubmission">
<id name="Id" column="Id" type="Int64">
<generator class="foreign">
<param name="property">Interview</param>
</generator>
</id>
// other props (snip)....
<one-to-one name="Interview" class="Interview"
constrained="true" cascade="none" />
</class>
두 개체가 집계 루트로 인터뷰 연기와 집계의 일부입니다. 인터뷰 엔티티를 통해 FormSubmission을 저장/업데이트/삭제하려고합니다. 따라서 협회의 인터뷰 끝을 cascade = "all-delete-orphan"으로 매핑했습니다. 예를 들어,이 같은 잘 새로운 FormSubmission 만들 수 있습니다
myInterview.Submission = new FormSubmission(myInterview);
InterviewRepository.Save(myInterview);
을 ... 그리고 이것은 FormSubmission가 저장, 잘 작동합니다.
myInterview.Submission = null;
InterviewRepository.Save(myInterview);
을 ... 그러나 이것은 FormSubmission을 삭제하지 않는 것 : 그러나, 나는 이런 식으로 할 노력하고있어 FormSubmission을 삭제할 수없는 것. 나는 협회의 양쪽 모두에 null을 할당 시도했다 :
심지어 폭포를 설정하려고했습니다myInterview.Submission.Interview = null;
myInterview.Submission = null;
InterviewRepository.Save(myInterview);
= "모든-고아를 삭제"를 FormSubmission 측에,하지만 아무것도 작동하는 것 같다 없습니다. 내가 뭘 놓치고 있니?
아, 그거 아! 나는 그것을지지하지 않는 것에 대한 그들의 정당성이 무엇인지 궁금합니다. 파비오 마울로 (Fabio Maulo)의 답변에서 '모든 사람이 죽은 고아'라는 것에서 일대일로 판단하는 것? ' 그는 이런 종류의 매핑이 나쁜 생각이라고 생각하지만, 왜 그런지 궁금합니다. –
말하기 어렵습니다. 파비오에게 직접적인 질문입니다. :) 어쨌든 이번 호 http://opensource.atlassian.com/projects/hibernate/browse/HHH-2608에 따라 Hibernate 3.5 (1 살)에서 이미 구현 된 것으로 보인다. Hibernate와 NHibernate 버전이 어떻게 관련이 있는지 모르겠다. ... –
[NH-1262 문제] (https://nhibernate.jira.com/browse/NH-1262)는 이제 다가올 4.1 버전에서 해결 된 것으로 표시되었다. –