gracias jose por la respuesta
mañana voy a insertar el registro con id = 0
y ademas sacar el not-found="ignore" y el lazy ="false"  de los mappings.

queda la duda de pq repite varias veces el select con los mismos parametros.

saludos



Mario Dal Lago

--- El mié 20-ene-10, José F. Romaniello <[email protected]> escribió:

De: José F. Romaniello <[email protected]>
Asunto: Re: [NHibernate-Hispano] Consulta generacion SQL
Para: [email protected]
Fecha: miércoles, 20 de enero de 2010, 8:58 pm

La causa es el not-found="ignore". Como hay un registro de CDInteractivoConfig 
con IdFrecuencia = 0, no lo puede encontrar  con el join ... para cada entidad 
trata de ir a buscarlo luego.
Lo mismo sucede cuando tenes algo lazy y not found="true", los proxies de 
nhibernate tienen que apuntar a registros que existan.Creo que si insertas algo 
con frecuencia = 0 zafas.


Lo que yo no se, como bien vos me dijiste por gtalk, es por que lo hace tantas 
veces, supuestamente con una vez le sería suficiente.



El 13 de enero de 2010 19:29, Mario Dal Lago <[email protected]> escribió:

Hola tengo los siguientes mappings

<class name="Frecuencia" table="Frecuencia" >


        <id name="idFrecuencia" column="idFrecuencia">
            <generator class="native" />
        </id>

        <property name="Descripcion" />


    </class>

y 

<class name="CDInteractivoConfig" table="CDInteractivoConfigs" lazy="false">

        <id name="IDClienteExportacion" column="idClienteExportacion">

            <generator class="native"
 />
        </id>

        <property name="PathRaizCD" />

        <many-to-one name="Frecuencia" column="idFrecuencia" class="Frecuencia" 
not-null="false" not-found="ignore" lazy="false" />

    
    </class>

cuando ejecuto el siguiente codigo

 return Session.CreateCriteria(typeof(CDInteractivoConfig))
                .SetFetchMode("Frecuencia", FetchMode.Eager)
                .List<CDInteractivoConfig>();


genera los siguientes sql:

NHibernate: SELECT this_.idClienteExportacion as idClient1_1_1_, this_.PathRaizC
D as PathRaizCD1_1_, this_.idFrecuencia as idFrecue3_1_1_,
 frecuencia2_.idFrecue
ncia as idFrecue1_0_0_, frecuencia2_.Descripcion as Descripc2_0_0_ FROM CDIntera
ctivoConfigs this_ left outer join Frecuencia frecuencia2_ on this_.idFrecuencia
=frecuencia2_.idFrecuencia

NHibernate: SELECT frecuencia0_.idFrecuencia as idFrecue1_0_0_, frecuencia0_.Des
cripcion as Descripc2_0_0_ FROM Frecuencia frecuencia0_ WHERE frecuencia0_.idFre
cuenc...@p0;@p0 = 0
NHibernate: SELECT frecuencia0_.idFrecuencia as idFrecue1_0_0_, frecuencia0_.Des

cripcion as Descripc2_0_0_ FROM Frecuencia frecuencia0_ WHERE frecuencia0_.idFre
cuenc...@p0;@p0 = 0
NHibernate: SELECT frecuencia0_.idFrecuencia as idFrecue1_0_0_, frecuencia0_.Des
cripcion as Descripc2_0_0_ FROM Frecuencia frecuencia0_ WHERE frecuencia0_.idFre

cuenc...@p0;@p0 = 0
NHibernate: SELECT frecuencia0_.idFrecuencia as idFrecue1_0_0_, frecuencia0_.Des
cripcion as Descripc2_0_0_ FROM Frecuencia frecuencia0_ WHERE
 frecuencia0_.idFre
cuenc...@p0;@p0 = 0
NHibernate: SELECT frecuencia0_.idFrecuencia as idFrecue1_0_0_, frecuencia0_.Des
cripcion as Descripc2_0_0_ FROM Frecuencia frecuencia0_ WHERE frecuencia0_.idFre
cuenc...@p0;@p0 = 0

NHibernate: SELECT frecuencia0_.idFrecuencia as idFrecue1_0_0_, frecuencia0_.Des
cripcion as Descripc2_0_0_ FROM Frecuencia frecuencia0_ WHERE frecuencia0_.idFre
cuenc...@p0;@p0 = 0
NHibernate: SELECT frecuencia0_.idFrecuencia as idFrecue1_0_0_, frecuencia0_.Des

cripcion as Descripc2_0_0_ FROM Frecuencia frecuencia0_ WHERE frecuencia0_.idFre
cuenc...@p0;@p0 = 0
NHibernate: SELECT frecuencia0_.idFrecuencia as idFrecue1_0_0_, frecuencia0_.Des
cripcion as Descripc2_0_0_ FROM Frecuencia frecuencia0_ WHERE frecuencia0_.idFre

cuenc...@p0;@p0 = 0

es correcto  ???

como hago para que genere un solo join, sin que ejecute los select separados..?
y ademas esta ejecutando varias veces el
 mismo select con @p0 = 0, no deberia ejecutarlo 1 sola vez y el resto de las 
veces tomarlo de la session ?

gracias







      
Encontra las mejores recetas con Yahoo! Cocina.


http://ar.mujer.yahoo.com/cocina/
--

Para escribir al Grupo, hágalo a esta dirección: 
[email protected]

Para más, visite: http://groups.google.com/group/NHibernate-Hispano


-- 
Para escribir al Grupo, hágalo a esta dirección: 
[email protected]
Para más, visite: http://groups.google.com/group/NHibernate-Hispano


      Yahoo! Cocina

Encontra las mejores recetas con Yahoo! Cocina.


http://ar.mujer.yahoo.com/cocina/

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