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
