quedaria asi: PrefacturaNoPublicar pre = null; s.QueryOver<Prefactura>() .JoinAlias(x=> x.NoPublicar,()=> pre,JoinType.LeftOuterJoin) .Where(() => pre.Id == null).List<Prefactura>(); saludos
Mario Dal Lago --- El jue 25-nov-10, Edgar Ramos <[email protected]> escribió: De: Edgar Ramos <[email protected]> Asunto: Re: [NHibernate-Hispano] IsNull y one-to-one Para: [email protected] Fecha: jueves, 25 de noviembre de 2010, 16:53 Como quedaria con QueryOver ? Saludos Edgar El 25 de noviembre de 2010 13:47, Mario Dal Lago <[email protected]> escribió: gracias por la aclaración, es correcto, no estaba usando el alias en ningún lado, ahora me quedo así y funciona.. list = s.CreateCriteria(typeof(Prefactura)) .CreateAlias("NoPublicar", "np", JoinType.LeftOuterJoin) .Add(Restrictions.IsNull("np.Id")).List<Prefactura>(); no se si se puede mejorar... gracias a gustavo y nicolas Mario Dal Lago --- El jue 25-nov-10, Gustavo Ringel <[email protected]> escribió: De: Gustavo Ringel <[email protected]> Asunto: Re: [NHibernate-Hispano] IsNull y one-to-one Para: [email protected] Fecha: jueves, 25 de noviembre de 2010, 16:22 Bue, en realidad hay errores en lo de Nicolas tambien, pero la idea esta bien, lo que te falta a vos es usar el alias que creaste. Gustavo. 2010/11/25 Gustavo Ringel <[email protected]> Lo que te puso nicolas esta bien, y lo que vos pusiste esta mal porque no usas tu alias, tenes que usar np.NoPublicar, sino directamente usa el nombre NoPublicar asociado a la tabla Prefactura (que es el root path) 2010/11/25 Mario Dal Lago <[email protected]> ya habia probado lo q comentas, de esta manera list = s.CreateCriteria(typeof(Prefactura)) .CreateAlias("NoPublicar", "np") .Add(Restrictions.IsNull("NoPublicar")).List<Prefactura>(); pero tampoco anda ya que la consulta que genera es la siguiente: SELECT this_.CPF_N_PRE as CPF1_1_1_, , np1_.idPrefacturaNoPublicar as idPrefac1_3_0_, np1_.idPrefactura as idPrefac2_3_0_ FROM CAB_PRE this_ inner join PrefacturaNoPublicar np1_ on this_.CPF_N_PRE=np1_.idPrefactura WHERE this_.CPF_N_PRE is null el where es sobre CPF_N_PRE y deberia ser sobre idPrefacturaNoPublicar gracias y saludos Mario Dal Lago --- El jue 25-nov-10, Nicolás Marzoni <[email protected]> escribió: De: Nicolás Marzoni <[email protected]> Asunto: Re: [NHibernate-Hispano] IsNull y one-to-one Para: [email protected] Fecha: jueves, 25 de noviembre de 2010, 15:28 Hola Mario, En este momento no puedo probarlo y no sé si está bien escrito, pero calculo que con algún ajuste te va a funcionar. Criteria.CreateCriteria("Prefactura") .CreateAlias("Prefactura.NoPublicar", "PrefacturaNoPublicar") .Add(Restrictions.IsNull("PrefacturaNoPublicar")).List(); Saludos. El 25 de noviembre de 2010 13:46, Mario Dal Lago <[email protected]> escribió: hola tengo los siguientes mapping y clases. <class name="Prefactura" table="CAB_PRE"> <id name="Id" column="CPF_N_PRE" type="Int32"> <generator class="identity" /> </id> <one-to-one name="NoPublicar" property-ref="Prefactura" /> </class> <class name="PrefacturaNoPublicar" > <id name="Id" column="idPrefacturaNoPublicar" type="Int32"> <generator class="identity" /> </id> <many-to-one name="Prefactura" unique="true" column="idPrefactura" /> </class> public class PrefacturaNoPublicar:Entity { public virtual Prefactura Prefactura { get; set; } } public class Prefactura:Entity { public virtual PrefacturaNoPublicar NoPublicar { get; set; } } y necesito traer todas las prefacturas donde NoPublicar sea null. lo puedo resolver con el siguiente HQL select a from Prefactura a left join a.NoPublicar b where b is null pero necesito hacer con criteria, probé utilizando Restrictions.IsNull("NoPublicar") pero no funciona. alguna sugerencia ? saludos Mario Dal Lago -- Para escribir al Grupo, hágalo a esta dirección: [email protected] Para más, visite: http://groups.google.com/group/NHibernate-Hispano -- Nicolás Matías Marzoni -- 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 -- 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 -- 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
