Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Recuperar dados de um HQL com 3 entidades

Tenho as entidades Venda, ItemVenda e Produto. Ao executar o seguinte código

            IQuery q = session.CreateQuery("from Pedido ped join fetch ped.Itens i");

            IList<Pedido> lstped = q.List<Pedido>();
            IList<ItemPedido> lstitens = new List<ItemPedido>();

            foreach (var ped in lstped)
            {
                Console.WriteLine("Pedido: " + ped.Id);
                lstitens = ped.Itens;
                foreach (var i in lstitens)
                {
                    Console.WriteLine("----" + i.Produto.Nome + " Qtde: " + i.Qtde);
                }
            }

Ao listar dentro do foreach o nome do produto, a cada item ele faz um select no produto. Como fazer para que o NHibernate faça apenas uma consulta?

1 resposta
solução!

Oi Ricardo

Você pode usar um segundo join fetch na HQL:

select ped from Pedido ped join fetch ped.Itens i join fetch i.Produto p