Hi, tenes que usar SQL Server Profiler y podes trazar toda consulta que
llega al servidor de base de datos.

Para que haga una sola consulta en el mapping que tenes que tenes de persona
a poblacion tenes que poner fetch=join si queres que siempre se haga una
sola consulta, o setear el fetch mode para poblacion como Eager en esa
consulta usando SetFetchMode.

Gustavo.

2008/6/30 palomino100 <[EMAIL PROTECTED]>:

>
> Hola!
> me he configurado el log4net para capturar las consultas sql que se
> hacen a la base de datos.
> Estoy haciendo una consulta con inner join con este codigo:
>
> ICriteria crit = session.CreateCriteria(typeof(Persona));
>            crit.CreateAlias("Poblacion","pob");
>            crit.Add(Expression.Expression.Eq("pob.Nom","sabadell"));
>
>            IList<Persona> perList = crit.List<Persona>();
>
> En el log observo las siguientes dos consultas que realiza nhibernate:
>
> 2008-06-30 10:13:05,478 DEBUG 1 NHibernate.SQL -
>        SELECT
>                this_.id_persona as id1_1_1_,
>                this_.nom_persona as nom2_1_1_,
>                this_.email_persona as email3_1_1_,
>                this_.telefono_persona as telefono4_1_1_,
>                this_.id_poblacion as id5_1_1_,
>                pob1_.id_poblacion as id1_0_0_,
>                pob1_.nom_poblacion as nom2_0_0_
>        FROM Persona
>                this_ inner join Poblacion pob1_ on
> this_.id_poblacion=pob1_.id_poblacion
>        WHERE
>                pob1_.nom_poblacion = @p0; @p0 = 'sabadell'
>
>
> 2008-06-30 10:13:05,811 DEBUG 1 NHibernate.SQL -
>        SELECT
>                personas0_.id_poblacion as id5___1_,
>                personas0_.id_persona as id1_1_,
>                personas0_.id_persona as id1_1_0_,
>                personas0_.nom_persona as nom2_1_0_,
>                personas0_.email_persona as email3_1_0_,
>                personas0_.telefono_persona as telefono4_1_0_,
>                personas0_.id_poblacion as id5_1_0_
>        FROM Persona personas0_
>        WHERE [EMAIL PROTECTED]; @p0 = '6'
>
>
> Me gustaría saber si realmente nhibernate realiza estas dos consultas,
> o bien sólo hace una y la primera de ellas
> sólo se realiza internamente.
> A parte, me iria bien si conocierais alguna manera de observar los
> accesos que se hacen a una base de datos en un sql server 2005, para
> poder observar si realizan estas dos consultas.
>
> Muchas Gracias.
>
> >
>

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