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
