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

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

Responder a