Muchas gracias a ambos,

Si habia leido que el Commit hace flush en auto y por eso lo veia lógico...
yo tenias dudas si el problema radicaba en como estaba cargando mi objeto
persistente, si hacerlo con Get o Load, pero ya ví que no tiene nada que ver
(eso espero).

Saludos.


--
J. Roberto Ramírez
http://twitter.com/bobbher

2010/4/5 Diego Mijelshon <[email protected]>

> Se cuasi-mapearía a "No persistir el valor en la instancia (copiarlo en
> otro lado)", aunque un poco más prolijo :-)
>
>    Diego
>
>
> 2010/4/5 Gustavo Ringel <[email protected]>
>
> se me ocurre mas facil usar access=field para ese campo (no se si mapea a
>> alguna de las tres opciones que diste Diego, asi que perdon si no te
>> entendi)
>>
>> en ese caso accedeas a CadenaConexion por la propiedad que devuelve el
>> Decrypt, pero lo que mapeas es el field que no lo tocas y entonces no se
>> detecta como dirty.
>>
>> Gustavo.
>>
>> 2010/4/5 Diego Mijelshon <[email protected]>
>>
>> Sí, ese es el comportamiento esperado.
>>> Si modificás cualquier propiedad persistente de una instancia persitente,
>>> al hacer commit (en realidad, al hacer flush, pero por default el commit lo
>>> hace) se realiza el update correspondiente.
>>> Tenés varias opciones, entre ellas:
>>>
>>>    - Utilizar una propiedad no persistente (lease, no mapeada) para
>>>    guardar el valor desencriptado
>>>    - No persistir el valor en la instancia (copiarlo en otro lado)
>>>    - Usar un UserType que encripte y desencripte en forma transparente
>>>    el persistir y recuperar el objeto
>>>
>>>
>>>    Diego
>>>
>>>
>>> 2010/4/5 J. Roberto Ramírez <[email protected]>
>>>
>>> Buenos días,
>>>>
>>>> Ya creo haber leido sobre esto que voy a comentar, pero quiero
>>>> confirmarlo...
>>>>
>>>> *session-per-request*
>>>>
>>>> Al inicio del request abro una nueva sesión y creo una nueva
>>>> transacción, además en mi servicio hago lo siguiente:
>>>>
>>>> var session = GetCurrentSession() {
>>>> var cliente = session.Get<Cliente>(id);
>>>> //El cliente dentro de el tiene una propiedad que algun servicio lo
>>>> encripto y lo guardó en la base de datos.
>>>> //Desencriptamos la propiedad para trabajar con ella.
>>>> cliente.CadenaConexion = Decrypt(cliente.CadenaConexion);
>>>> ...
>>>>
>>>> Al finalizar el request cierro la sesión, hago commit de la transacción
>>>> y unbind.
>>>>
>>>> Para mi sorpresa al finalizar el request, NH me hizo un update a la Base
>>>> de Datos actualizando el valor de CadenaConexion.
>>>>
>>>> Este comportamiento es normal? existe manera de manejarlo?
>>>>
>>>> Gracias por la ayuda.
>>>>
>>>>
>>>> --
>>>> J. Roberto Ramírez
>>>> http://twitter.com/bobbher
>>>>
>>>> --
>>>> 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
>>>
>>
>>  --
>> 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
>

-- 
Para escribir al Grupo, hágalo a esta dirección: 
[email protected]
Para más, visite: http://groups.google.com/group/NHibernate-Hispano

To unsubscribe, reply using "remove me" as the subject.

Responder a