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

Responder a