Buenos días, quería que alguien me tire alguna punta de como traducir la 
siguiente consulta HQL.

Tengo 2 clases: Usuario y Pin, donde usuario tiene Pins con la siguiente 
configuración en el mapping hbm

<set name="Pins" table="Pin_por_Usuario" >
      <key column="id_usuario" />
      <many-to-many class="Pin">
        <column name="id_pin" />
      </many-to-many>
    </set>

Quiero obtener como resultado, los usuarios y los pines (en caso de 
existir) y de cumplir con el criterio del where.

consulta hql: "select usuarios, pins from Usuario usuarios left join 
usuarios.Pins pins where usuario.nombre == paramNombre"

Si realizo esta consulta con hql, me devuelve cada registro con el Usuario 
y Pin (si corresponde) o solo el Usuario.

Intenté realizarlo con QueryOver, pero hay algo que no me funciona, o no 
termino de comprender

Pin pins = null;
            
var queryOver = Session.QueryOver<Usuario>().Where(u => u.Nombre == nombre);

IList<object> resultado = queryOver.Left.JoinAlias(u => u.Pins, () => pins)
                .SelectList(list => list
                    .Select(u => u)
                    .Select(u  => pins))
                    .List<object>();

Arroja NullReferenceException y me imagino que viene por la variable "pins" 
(.Select(u  => pins))
Entonces saco la línea ".Select(u  => pins)" para probar si funciona y 
ahora el problema que arroja es 
:"NHibernate.QueryException : could not resolve property:  of: 
Domain.Usuario"
Si remplazo la línea ".Select(u => u)" por ".Select(u => u.Id)", devuelve 
correctamente el resultado.

¿Alguien me podría iluminar para resolver esta consulta?

Muchas gracias cualquier ayuda que me puedan brindar

Saludos, 

Andrés Falcón.

-- 
-- 
Para escribir al Grupo, hágalo a esta dirección: 
[email protected]
Para más, visite: http://groups.google.com/group/NHibernate-Hispano
--- 
Has recibido este mensaje porque estás suscrito al grupo "NHibernate-Hispano" 
de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos 
electrónicos, envía un correo electrónico a 
[email protected].
Para obtener más opciones, visita https://groups.google.com/groups/opt_out.


Responder a