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 To unsubscribe, reply using "remove me" as the subject.
