Buenas gente, tengo una duda sobre cómo hacer algo con Criteria. Tengo una
clase ItemPedido, que tiene el producto, color, talle y cantidad pedida
entre otras propiedades (producto, talle y color son entidades). Necesito
hacer un listado de cantidades pedidas por producto, color y talle. Hasta
ahora hice esto:

HibernateSession.CreateCriteria<ItemPedido>()
                .CreateAlias("Pedido", "p")
                .Add(Restrictions.Between("p.FechaPedido", desde, hasta))
                .SetProjection(Projections.ProjectionList()
                    .Add(Projections.GroupProperty("Producto"))
                    .Add(Projections.GroupProperty("Color"))
                    .Add(Projections.GroupProperty("Talla"))
                    .Add(Projections.Sum("CantidadPedido"))
                ).List()

Lo cual funciona perfectamente, me hace el group by y suma las cantidades.
Ahora bien, cuando quiero mostrar en el listado el nombre del producto, la
descripción del talle y del color, va de nuevo a la base a buscar cada
entidad. Yo lo que quiero es ya traerme las entidades materializadas, para
hacer un solo viaje a la base de datos. Probé poniendo un
SetFetchMode("Color", FetchMode.Join) y me hace el join en la consulta,
pero se queda solo con el Id y después tiene que ir de nuevo a buscar el
producto (esto supongo que es así por el groupby).

¿Alguien me puede decir cómo puedo hacer lo que quiero? (Si es que se
puede...)

Gracias!
José

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