Hola Nestor,

2011/6/3 Nestor Rodriguez <[email protected]>

> 1.  Si incluyes abstract=true en un mapeo <union-sub-class> no te va a
> generar tabla para la clase abstracta.


Supongo que quisiste escribir <union-subclass>, en ese caso, me queda el
mapeo que copio a continuacion. No se requiere colocar abstract="true" y,
efectivamente, no requiere una tabla para Party. Esto ya lo habia comentado
en un post anterior.

<class name="Party">
 <id name="Id">
<generator class="guid.comb"/>
</id>
 <union-subclass name="Person" table="People">
<property name="FirstName"/>
 <property name="LastName"/>
</union-subclass>
<union-subclass name="Company" table="Companies">
 <property name="CompanyName"/>
</union-subclass>
</class>

2.  El incluir el abstract=true en un mapeo de <subclass> DEBES colocar la
> tabla en la definicion de la clase <class name=Party table=Parties> ya que
> esta estrategia persiste todo en una sola tabla.
>

Entiendo que aca estaas hablando de este otro enfoque para la persistencia:

 <class name="Party" abstract="true">
<id name="Id">
 <generator class="guid.comb"/>
</id>
</class>

<subclass name="Person" extends="Party" table="People">
<property name="FirstName"/>
 <property name="LastName"/>
</subclass>

<subclass name="Company" extends="Party" table="Companies">
 <property name="CompanyName"/>
</subclass>

En este caso no persiste todo en una sola tabla sino que es una tabla por
cada clase (incluso la abstracta).

3. Me surge la duda de si NHibernate te coloca automaticamente un
> <discriminator-column> y los <discriminator-values> cuando mapeas el <class>
> y las <subclass> respectivamente.  Pensaria que deberias incluirlos.
>

Entiendo que el discriminator solo es necesario en caso de que tengas una
tabla para la clase abstracta o una tabla para toda la jerarquia.


> 4. Despues de esto verifica de nuevo el query.
>

Ya he hecho la verificacion con estos dos mappings y no funciona en ninguno
de los dos casos, siempre con el mismo error.


>
> Saludos
>

Muchas gracias

----------------------------------
Carlos Peix

-- 
Para escribir al Grupo, hágalo a esta dirección: 
[email protected]
Para más, visite: http://groups.google.com/group/NHibernate-Hispano

Responder a