ahora me gustó ;)

El 12 de enero de 2010 13:34, Edgar Ramos <[email protected]> escribió:

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



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

Responder a