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

Responder a