2009-06-16 2 views
3

나는 간단한 예제를 가지고있다; 인터페이스를 구현하는 추상 제네릭 클래스를 상속하는 구체적인 클래스.NHibernate : 'extends'에 의해 참조 된 이들 클래스가 발견되지 않았다.

즉. StringProperty -> AbstractProperty <T> -> IProperty

나는 다음과 같은 오류가 ...

NHibernate.MappingException: These classes referenced by 'extends' were not found: 
NhibernateTest.AbstractGenericProperty`1[[System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]], PromoNhibernateTest 
    at NHibernate.Cfg.MappingsQueue.CheckNoUnavailableEntries() 
    at NHibernate.Cfg.Configuration.SecondPassCompile() 
    at NHibernate.Cfg.Configuration.BuildSessionFactory() 

내가 NHibernate에 다음과 같은 매핑을 생성하는 속성을 사용

...

<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"> 
    <class name="NhibernateTest.AbstractGenericProperty`1, PromoNhibernateTest" lazy="false" table="Properties"> 
    <id> 
     <generator class="identity" /> 
    </id> 
    <discriminator column="Name" type="String" /> 
    </class> 
    <subclass name="NhibernateTest.StringProperty, PromoNhibernateTest" lazy="false" extends="NhibernateTest.AbstractGenericProperty`1[[System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]], PromoNhibernateTest" discriminator-value="string" /> 
</hibernate-mapping> 

알려 주시기 바랍니다 매핑이 잘못되었습니다.

감사합니다.

Ted.

답변

0

문제는 AbstractProperty를 매핑 할 수 없다는 것입니다.

제네릭 형식을 정의하는 하위 클래스 매핑을 만드는 경우에도 열려있는 제네릭 형식을 매핑 할 수 없습니다.

NHibernate가 서브 클래스 매핑에 도달했을 때 불평을 시작하는 이유는 모르지만 서브 클래스가 아니라 AbstractProperty 매핑이 문제라고 확신합니다.

관련 문제