Estimado Fabio
Hice exactamente lo que me comento Carlos Peix, modifique el archivo
de mapeo de la clase base abstracta, y creo que el kit estaba en
cambiar de tipo de dato el campo discriminador, yo lo tenia en char de
60, y cuando guardaba en la bdd mi objeto por ejemplo transferencia
este se guardaba con espacios en blanco a la derecha hasta completar
los 60, cambie este a varchar de 60, ahora puedo recuperar todos mis
objetos que implementan movimiento
El error era el siguiente
Object with id: 10 was not of the specified subclass:
PYTWINDOWS.Entities.Movimiento (Discriminator was: 'Transferencia
'), aqui esta claro, bueno ahora esta claro, "los espacios en
blanco"
Pero al buscar mi objeto "from Transferencia", me retornaba todos los
objetos transferencia, es por eso que nunca se me ocurrio cambiar el
tipo de dato del campo discriminador
saludos y gracias nuevamente
El mensaje de error como lo postee anteriormente era
12 de enero de 2010 11:02, Fabio Maulo <[email protected]> escribió:
> Y cual fue la solución ? (vendría bien por si le pasa lo mismo a alguien
> mas)
>
> El 12 de enero de 2010 12:59, Edgar Ramos <[email protected]> escribió:
>>
>> Gracias a todos por sus respuestas, y gracias Carlos el problema se
>> ha solucionado
>>
>> El día 12 de enero de 2010 10:06, Edgar Ramos <[email protected]>
>> escribió:
>> > Entendido este momento estoy modificando, gracias por las sugerencias
>> >
>> > El día 12 de enero de 2010 09:56, Carlos Peix <[email protected]>
>> > escribió:
>> >> Ops, ahora que releo, tambien podrias escribir esta parte asi:
>> >> <many-to-one name="Origen" class="Ambiente" />
>> >> <many-to-one name="Destino" class="Ambiente" />
>> >> <many-to-one name="User" class="Usuario" />
>> >> ----------------------------------
>> >> Carlos Peix
>> >> cel: 15-4406-7571
>> >>
>> >>
>> >> 2010/1/12 Carlos Peix <[email protected]>
>> >>>
>> >>> Hola Edgard,
>> >>> Como consejo lateral, el mismo mapping podrias escribirlo asi:
>> >>> <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
>> >>> namespace="PYTWINDOWS.Entities" assembly="PYTWINDOWS">
>> >>> <class name="Movimiento" table="tb_cts_Movimiento"
>> >>> discriminator-value="Ninguno" >
>> >>> <id name="IdMovimiento">
>> >>> <generator class="identity"/>
>> >>> </id>
>> >>> <discriminator column="Tipo" />
>> >>> <many-to-one name="Origen" class="Ambiente" column="Origen" />
>> >>> <many-to-one name="Destino" class="Ambiente" column="Destino" />
>> >>> <many-to-one name="User" class="Usuario" column="Usuario" />
>> >>> <property name="Fecha"/>
>> >>> <property name="Numeracion"/>
>> >>> <bag name="Lineas" inverse="true" cascade="all-delete-orphan">
>> >>> <key column="idMovimiento"/>
>> >>> <one-to-many class ="LineaMovimiento"/>
>> >>> </bag>
>> >>> <subclass name="Transferencia" discriminator-value="Transferencia" >
>> >>> </subclass>
>> >>> <subclass name="Produccion" discriminator-value="Produccion">
>> >>> </subclass>
>> >>> <subclass name="Venta" discriminator-value="Venta">
>> >>> <property name="Descuento"/>
>> >>> <property name="FormaPago"/>
>> >>> <property name="TipoDocumento"/>
>> >>> </subclass>
>> >>> <subclass name="Ingreso" discriminator-value="Ingreso">
>> >>> </subclass>
>> >>> </class>
>> >>> </hibernate-mapping>
>> >>> Y queda mas claro, fijate que defini el default-namespace y
>> >>> default-assembly en el encabezado.
>> >>> Por otro lado, me llama la atencion que tengas discriminator-value
>> >>> para la
>> >>> clase base, acaso es posible que tengas una instancia de Movimiento?
>> >>> si no
>> >>> es asi, entonces el discriminator-value no te aporta nada y yo lo
>> >>> sacaria de
>> >>> la clase base.
>> >>> Luego, para hacer una prueba facil, proba de usar el tipo VARCHAR para
>> >>> la
>> >>> columna del discriminator, eso va a hacer que no molesten los espacios
>> >>> en
>> >>> blanco pero, como contrapartida, los indices sobre columnas VARCHAR no
>> >>> son
>> >>> tan eficientes como aquellos sobre columnas CHAR (o mejor aun, INT),
>> >>> pero al
>> >>> menos sirve para que puedas probar.
>> >>> Luego de hacer ese cambio, por supuesto, borra nuevamente la base de
>> >>> datos.
>> >>> ----------------------------------
>> >>> 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
>
>
>
> --
> Fabio Maulo
>
>
> --
> 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