Вот моя иерархия:
class abstract Entity { /*members*/ } // mapped to entity table
class abstract User : Entity { /*members*/ } // mapped to user table
class Employee : User { /*no members*/ } // no table, discriminator = "E"
class Contractor : User { /*no members*/ } // no table, discriminator = "C"
Вот мои отображения в двух отдельных файлах hbm:
<class name="Entity" table="entity" xmlns="urn:nhibernate-mapping-2.2">
<id name="Id" column="id">
<generator class="guid.comb" />
</id>
<property ... />
</class>
<joined-subclass name="User" extends="Entity" table="user">
<key column="id" />
<discriminator column="type" />
<property ... />
<subclass name="Employee" discriminator-value="E" />
<subclass name="Contractor" discriminator-value="C" />
</joined-subclass>
Следующее исключение, которое я получаю:
MappingException:Ошибка проверки XML: элемент 'join-subclass' в пространстве имен 'urn: nhibernate-mapping-2.2' имеет недопустимый дочерний элемент'criminator 'в пространстве имен' urn: nhibernate-mapping-2.2 '.
Что яотсутствует?Разве вы не можете сопоставить иерархию различаемых подклассов объединенного подкласса?