De nada.

PS:  Todos son testigos de la promesa de la cerveza :P

2011/6/4 Carlos Peix <[email protected]>

> Hola Nestor, te agradezco inmensamente el tiempo que has dedicado.
>
>
> 2011/6/3 Nestor Rodriguez <[email protected]>
>
>> 2- En el mapeo de <union-subclass> si fue necesario colocar Abstract =
>>
> "True" de lo contrario verificando con el SchemaExport SI generaria una
>>
>> tabla para Party.
>>
> Estas en lo cierto, como en este proyecto tengo activada la generacion
> automatica del esquema, no me habia dado cuenta. Agregue el abstract="true"
> y ya no genera la tabla Party.
>
>
>> 3- En el mapeo de Customer->Party el <many-to-one> tiene el property
>> ="Party" pero deberia ser property="Actor".
>>
> 4- En tu clase de Customer existe una propiedad de tipo Party llamada
>> Actor.
>>  Asi que tienes que cambiar el query para que el join sea c.Actor en lugar
>> de c.Party.
>>
>
> Es cierto, esto fue un error mio ya que luego de un par de mails pegue el
> nuevo mapping sobre un modelo ya cambiada. De otra manera no hubiese
> compilado el mapping. Disculpas por la confusion.
>
> Repase tus recomendaciones en mi codigo y todo estaba igual, la cosa es que
> ahora el query funciona. Estuve revisando varias versiones en el repo local
> de Hg y no encuentro ninguna cambio determinante. Creo que podemos llamarlo
> magia.
>
> Pego el codigo definitivo para referencia de los demas:
>
> Modelo:
>
> public abstract class Party : Entity {
>  ...
> }
>
>  public class Company : Party {
>  ...
>  }
>
> public class Person : Party {
>  ...
>  }
>
> public class Customer : Entity {
> private Party party;
>  ...
> }
>
> public class Order : Entity
> {
> private Customer customer;
>  ...
> }
>
> Mappings:
>
> <class name="Party" abstract="true">
> <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>
>
> <class name="Customer" table="Customers">
>  <id name="Id">
> <generator class="guid.comb"/>
>  </id>
>
> <many-to-one name="Party" cascade="save-update"
>  unique="true" column="PartyId"/>
> </class>
>
> <class name="Order" table="Orders">
> <id name="Id">
>  <generator class="guid.comb"/>
> </id>
>
> <property name="Ammount"/>
> <many-to-one name="Customer" column="CustomerId"/>
>  </class>
>
> Muchas gracias Nestor, de debo una cerveza.
>
> ----------------------------------
> 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
>

-- 
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