2010-06-24 4 views
0

데이터 모델에서 A에서 B까지 일대 다 관계가 있습니다.하지만 내 도메인 API에서는 A에 B를 노출시키지 않습니다 (A에서 B로 탐색하지 않으므로) , B에서 A에 대한 참조가 있습니다. 이제 A가 삭제되면 모든 "B"를 삭제할 수 있기를 원합니다. 가능한가? 지금 NH은 우선 FK를 null로 설정하려고 시도하고 있습니다. 원하지 않는 칼럼은 nullable이 아니기 때문에 불가능합니다. A = SupplierTypeHibernate 캐스케이드 삭제

B = BaseProductCoInsurance

public BaseProductCoInsuranceMap() 
     { 
      Table("BaseProductCoInsurance"); 

      Id(x => x.Id, "BaseProductCoInsuranceId"); 

      Map(x => x.CoInsurancePercent).Column("CoInsrPrcnt"); 

      References(x => x.BaseProduct, "BaseProductId"); 
      References(x => x.PolicySupplierType, "PlcySupplierTypeID"); 
      References(x => x.InsuredType, "InsuredTypeCode"); 
     } 
+0

매핑이 어떻게 생겼습니까? – R0MANARMY

+1

나는 "cascade = all-delete-orphan"을 설정할 것입니다. 이것을 시도해 보셨습니까? – VoodooChild

+0

@ ROMANARMY : 매핑으로 질문을 업데이트했습니다. – epitka

답변

0

당신은 당신이 NHibernate에이 관계에 대해 알려 할 필요가 다음 삭제를 단계적으로 할 수 있어야합니다. 그것은 당신이 다른 사람들이 그 관계에 접근 할 필요가 없다고 말했습니다. 물론 NH 만 알고있는 개인 소장품을 가질 수 있습니다.

지연 성 관계를로드하면 성능이 저하되지 않습니다.

또 다른 옵션은 삭제 방법을 수정하여 다른 항목도 삭제하는 것입니다.

관련 문제