quedaria asi:

                    PrefacturaNoPublicar pre = null;                    
s.QueryOver<Prefactura>()                        .JoinAlias(x=> 
x.NoPublicar,()=> pre,JoinType.LeftOuterJoin)                        .Where(() 
=> pre.Id == null).List<Prefactura>();
saludos

Mario Dal Lago

--- El jue 25-nov-10, Edgar Ramos <[email protected]> escribió:

De: Edgar Ramos <[email protected]>
Asunto: Re: [NHibernate-Hispano] IsNull y one-to-one
Para: [email protected]
Fecha: jueves, 25 de noviembre de 2010, 16:53

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]>

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]> 
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]
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






       



-- 

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