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.
