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
