Hi Carlos, yo trate de mirar, pero a mi entender nhibernate actua como yo esperaria. Hable con "el Tano" y el me dio a entender como que yo puedo estar errado asi que no se que decirte.
A mi gusto el fetch ahi influye nada mas en que aun si no tenes fetch=join en el mapping va a hacer una sola consulta, pero luego te va a traer solo lo que corresponde a la consulta. O sea que el segundo assert en el que esperas obtener tambien elementos que no tienen el termino %1% no debiera andar. Repito, pareceria que no tengo razon, aunque mi intuicion y la consulta que larga HQL de hecho parecerian ir mas para el lado de lo que yo intuyo. Gustavo. 2008/7/1 Carlos Peix <[EMAIL PROTECTED]>: > 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 -~----------~----~----~----~------~----~------~--~---
