no tiene nada que ver, get trae los datos de la bd, mientras que load lo hace lazy. Esta es una de las cosas mas importantes de NHibernate, te recomiendo que leas esto:
http://ayende.com/Blog/archive/2009/04/30/nhibernate-ndash-the-difference-between-get-load-and-querying-by.aspx El 5 de abril de 2010 15:07, J. Roberto Ramírez <[email protected]>escribió: > 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 > -- 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.
