나는 하나의 테이블에서 여러 개의 다른 파생 클래스로 레코드를 매핑하는 데 nhibernate를 사용하는 시나리오가 있습니다.Nhibernate 하위 클래스가없는 핸들 사례
public class BaseClass { }
public class DerivedClass0 : BaseClass { }
public class DerivedClass1 : BaseClass { }
public class DerivedClass2 : BaseClass { }
나는 다음 NHibernate에의 DiscriminateSubClassesOnColumn() 메소드를 사용하여 매핑 할 때, 이러한 클래스가 파생 클래스가 아닌 BaseClass로 캐스팅되도록
<subclass name="DerivedClass0" extends="BaseClass" discriminator-value="discriminator0" />
<subclass name="DerivedClass1" extends="BaseClass" discriminator-value="discriminator1" />
<subclass name="DerivedClass2" extends="BaseClass" discriminator-value="discriminator2" />
를 포함하도록 설정을 변경합니다.
그러나 내 데이터베이스에는 해당 하위 클래스가없는 식별자가있는 일부 레코드가 있습니다. 슬로우 해당 서브 클래스가없는 모든 기록이 BaseClass로가 아닌 오류로 캐스팅되도록,
"Object with id: 'xxx' was not of the specified subclass..."
나는이 문제를 해결할 수있는 방법이 있나요 :이 경우, nHibernate 수에서 오류가 발생합니다?
가능한 한 위의 내용을 단순화했습니다. 그러나 XML이 동적으로 편집되므로 주목할 가치가 있습니다. 이는 내가 유창한 nhibernate [DiscriminateSubClassesOnColumn()]과 XML을 동시에 참조하는 이유입니다.
- 내가 하나 이없는 레코드에 대한 하위 클래스를 만들 수 없습니다
- 유효하지 않은 레코드를 제거하기 위해 데이터를 수정할 수 없습니다
다음 일이 (도움이되는) 옵션이 아니다
nHibernate가 discriminator를 매핑하려고 시도하고 그 중 하나가 존재하지 않는 경우를 처리해야합니다.