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]<http://mc/[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]<http://mc/[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]<http://mc/[email protected]>
> >* escribió:
>
>
> De: Nicolás Marzoni 
> <[email protected]<http://mc/[email protected]>
> >
> Asunto: Re: [NHibernate-Hispano] IsNull y one-to-one
> Para: 
> [email protected]<http://mc/[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]<http://mc/[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]<http://mc/[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

Responder a