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]<http://mc/[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]<http://mc/[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
