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

Responder a