Domanda

Ecco la mia gerarchia:

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"

Ecco le mie mappature in due file separati 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>

Di seguito è l'eccezione che ottengo:

MappingException: errore di convalida XML: L'elemento 'unita-sottoclasse' nello spazio dei nomi 'urn: NHibernate-mapping-2.2' ha elemento figlio non valido 'discriminatore' nello spazio dei nomi 'urn: NHibernate-mapping-2.2'.

Che cosa mi manca? Non è possibile mappare una gerarchia sottoclasse discriminata di una sottoclasse-uniti?

È stato utile?

Soluzione

Che cosa si vuole fare non è attualmente possibile.

http://www.nhforge.org/doc/nh /en/index.html#inheritance per costrutti consentiti.

Altri suggerimenti

uniti-sottoclasse non ha un discriminatore perché è in una tabella separata. È così che sa che cosa la sottoclasse è. Se si desidera utilizzare un discriminatore si usa una tabella per tutte le sottoclassi e si può usare il sottoclasse mappatura

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top