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

Responder a