Hola gente,
 
Hablando de fetch join, alguien pudo ver el problema que plantee la semana
pasada (caso 2)?
 
Segun explique, me encuentro con un problema grave al usar fetch join
filtrando por la relacion hija.
 
Gracias
 
Carlos Peix

  _____  

De: [email protected]
[mailto:[EMAIL PROTECTED] En nombre de Gustavo Ringel
Enviado el: Lunes, 30 de Junio de 2008 09:35 a.m.
Para: [email protected]
Asunto: [NHibernate-Hispano] Re: capturar consultas


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