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
