Gracias José por la respuesta, lo he probado y sigo obteniendo la misma excepcion. Si quito el evict y hago
session.update(entity) session.refresh(entity) en el refresh salta la excepcion "No row with the given identifier exists[Pago#928]" Un apunte interesante es que lo he probado con nHibernate 1.2 y no tengo ningun problema, tengo: session.evict session.refresh y va perfecto, refresca bien el objeto, y antes y despues del refresh el objeto sigue teniendo el mismo hashcode. Creo que el cambio esta en esta nueva version de nHibernate en el Evict, que deja al objeto fuera de sesion, de juego y.... nose que probar mas... ¿Podria ser un bug? y aprovecho la ocasion para preguntar a donde debo dirigirme, puedo hacer test y subirlos..... Gracias El 20 de abril de 2010 17:26, José F. Romaniello <[email protected]>escribió: > Perdón, en lugar de Merge, sería Update(...) > > El 20 de abril de 2010 12:26, José F. Romaniello > <[email protected]>escribió: > > Estas haciendo refresh de un objeto que pertenece a otra sesión. Creo que >> tendrías que asociar dicho objeto a la nueva sesión antes de hacer el >> refresh; >> >> tal vez algo como: >> >> session.Merge(entity); >> session.Refresh(entity); >> >> Pero puedo estar equivocado ya que raramente uso estos dos métodos. >> >> El 20 de abril de 2010 12:16, Mendu <[email protected]> escribió: >> >> Pues no, probando ahora con otras entidades me siguie saliendo la >>> misma excepcion "Initializing[Operacion#21038,02]-failed to lazily >>> initialize a collection of role: Operacion.priParticipes, no session >>> or session was closed". De momento para hacer un refresh tengo que >>> hacer >>> >>> session.Evict(entity) >>> Dim obj As T = session.Get(entity.GetType, Identificador) >>> entity = obj >>> >>> asi me coge los cambios que se producen por cualquier proceso >>> independiente pero el Objeto antes del refresh y el Objeto despues del >>> refresh no conservan el mismo hashcode. >>> >>> Alguien se anima??? >>> >>> >>> On 20 abr, 12:24, Mendu <[email protected]> wrote: >>> > (perdon, le di a enviar sin querer) >>> > >>> > ME FUNCIONA. ha sido usando Query.SetCacheMode(CacheMode.Refresh) pero >>> > obligado a usar antes EVICT, si no no refresca nada. >>> > >>> > Bueno, me gustaria si alguien ha peleado con esto que comentase sus >>> > impresiones, en la documentacion leo sobre Query.SetCacheMode que >>> > "This is a more efficient alternative to eviction of a query cache >>> > region via ISessionFactory.EvictQueries()" asi que me desconcierta un >>> > poco y preferiria no tener que hacer un evict. >>> > >>> > un saludo >>> > >>> > On 20 abr, 12:15, Mendu <[email protected]> wrote: >>> > >>> > >>> > >>> > > volviendo con mi problema de hacer un refresh de una entidad que ha >>> > > podido ser actualizada por un proceso independiente, he visto en la >>> > > documentacion el uso de IQuery.SetForceCacheRefresh() que luego en el >>> > > foro he visto que esta obsoleta y ahora utlilizamos como dice Fabio >>> > > IQuery.SetCacheMode(CacheMode.Refresh) . pues bien lo he echo y sigue >>> > > sin refrescarme los datos. >>> > >>> > > Dim obj As ArrayList = session.CreateQuery("from " & >>> > > Me.persitentType.Name & " e where >>> > > e.Numero=71").SetCacheMode(CacheMode.Refresh).List >>> > >>> > > y este obj no trae los cambios realizados en la bd. >>> > >>> > > Para que el refresh funcione y recoja los cambios tengo que hacer >>> > > antes un session.Evict(entity) y asi si veo la entidad actualizada. >>> > >>> > > --------Pero a la hora de guardar me da la excepcion de.... >>> ---------- >>> > > un segundo.... >>> > >>> > > ME >>> > >>> > > On 19 abr, 13:53, Mendu <[email protected]> wrote: >>> > >>> > > > Hola a Todos, estoy actualizandome a la version 2.1 y me ha surgido >>> un >>> > > > problema con evict y refresh. >>> > >>> > > > Antes hacia un evict y refresh de algunos objetos que sus >>> propiedades podian >>> > > > ser cambiadas por cualquier otro usuario y con evict y refresh me >>> > > > actualizaba la entidad con cualquier cambio que cualquier usuario >>> pudiera >>> > > > haber echo en la bd. >>> > >>> > > > Desde que he actualizado a la 2.1 me esta dando una excepcion >>> como: >>> > > > - Initializing[Operacion#32,01]-failed to lazily initialize a >>> collection of >>> > > > role: Operacion.priParticipes, no session or session was closed >>> > >>> > > > Si no hago evict y uso solo el refresh entonces me da la excepcion: >>> > > > UnresolvableObjectException: No row with the given >>> > > > identifier exists >>> > >>> > > > Por supuesto que para que me de estas excepciones tengo que cargar >>> la >>> > > > entidad, luego modificarle alguna propiedad en la bd y luego hago >>> refresh >>> > > > para ver si recarga... y no lo hace. (antes con la 1.2 si lo >>> hacia) >>> > >>> > > > agradezco cualquier comentario, duda, consejo..... >>> > >>> > > > Gracias >>> > >>> > > > -- >>> > > > 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
