Siguiendo con mi guerra del refresh en mi Actualizacion a nHibernate 2.1 veo
un cambio (creo que en el evict) que en la version anterior era diferente.
Pues bien al hacer un evict y un refresh de la entidad, ésta no conserva el
mismo hashCode lo que me preocupa bastante.
Dim objA as Entidad= Session.entidad.GetId(71)
Dim objB As Entidad = Session.entidad.Refresh(objA )
---> este refresh haria un evict y un Query.SetCacheMode(CacheMode.Refresh)
If objA.GetHashCode = objB.GetHashCode Then
'NO ENTRA, NO SON EL MISMO OBJETO
End If
esto me daria bastantes problemas. que pensais?
El 20 de abril de 2010 12:24, Mendu <[email protected]> escribió:
> (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