Andrés Falcón
unread,Mar 13, 2013, 12:13:17 PM3/13/13Sign in to reply to author
Sign in to forward
You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to nhibernat...@googlegroups.com
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.