El cache de primer nivel no tiene nada que ver, si alguien commiteo en otra
maquina sea a mano o con NH en la base y hago un nuevo read, tiene que
traerme el nuevo dato (si mi isolation level es Read Commited)

Si el Isolation Level en el que trabajas es mayor, entonces es por el
mecanismo de transacciones de la base que no ves ya que estas adentro de una
transaccion isolada.

Pero hacer dentro de la misma session dos veces GetAll usando ReadCommited
que es el "estandar" da resultados distintos si hay datos nuevos, no se
puede cachear lo que no existia.

Gustavo.

2009/12/2 Jose Miguel Rivero <[email protected]>

>
> Buenas,
>
> Estas usando la misma Sesión así que la primera vez que se ejecuta el
> método
> GetAll se carga todos los objetos en la cache de primer nivel, la segunda
> vez no
> obtiene los registros desde la base de datos, lee el cache de primer nivel
> y no
> ve los cambios que vos hiciste directamente.
>
> Solución, no uses la base de datos directamente o usa usa IStatelessSession
> para
> no tener cache de primer nivel (no recomendado).
>
> Saludos,
> J.M.Rivero
>
> >     On 2 dic, 09:41, Marcelo Salazar <[email protected]
> >     <mailto:[email protected]>> wrote:
> >      > Hola a todos,
> >      >
> >      > estoy incursionando en NHibernate. Tengo una aplicación corriendo
> >      > bastante bien realizando todos los CRUD sin problemas, sin embargo
> se
> >      > me ha presentado el siguiente inconveniente.
> >      >
> >      > Suponiendo que tengo una clase clientes y en un Datagridview un
> >      > usuario (UsuarioA) listo la información de todos los clientes
> >     mediante
> >      > un metodo GetAll() del DAO de Clientes (Le desplego un listado de
> 100
> >      > registros). Paralelamente otro usuario (UsuarioB) ingresa mediante
> un
> >      > formulario un nuevo cliente (llamemosle clienteA) y yo ingreso
> >      > manualmente mediante un gestionador de BD (SQLyog, por ejemplo) un
> >      > nuevo cliente (llamemosle clienteB).
> >      >
> >      > Ahora, cuando el UsuarioA llama denuevo la funcion GetAll de
> >     Clientes,
> >      > le sigue mostrando los 100 clientes y no los 102 que deberian ser
> en
> >      > realidad. ¿Que esta sucediendo? ¿Alguna sugerencia al respecto?
> >      >
> >      > Saludos
>
>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
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