type="AnsiString"

El 12 de enero de 2010 13:48, Carlos Peix <[email protected]> escribió:

> Hola Tano,
>
> Esto quiere decir que no es recomendable usar campos CHAR para el
> discriminator? (en estos campos SQLServer completa con espacios a la derecha
> pero creo que ya sabrias esto)
>
> Es razonable que NH se confunda ya que graba un "Transferencia" y obtiene
> un "Transferencia          " pero tambien seria bueno que NH no se fuera de
> mambo con esto puesto que es bastante comun.
>
> Por ultimo, segun creo, los indices sobre CHAR son mas eficientes (en
> velocidad de lookup, no en almacenamiento) que sobre VARCHAR y es altamente
> probable que esta columna sea indexada puesto que participa del query, en
> general.
>
> Como siempre, le pertenezco...
>
> Gracias
>
> ----------------------------------
> Carlos Peix
>
> 2010/1/12 Fabio Maulo <[email protected]>
>
> 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
>>
>
>
> --
> 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