6
respostas

Manager não esta trazendo todos os objetos do banco

Galera estou querendo listar todas as minha vendas por periodo porem quando ele vem não vem todos os dados no banco segue meus codigos

Meu DAO

public List<Venda> listaVenda() {
        return manager.createQuery("select v from Venda v join fetch v.procedimento",Venda.class).getResultList();

    }

Meu Controller

    List<Venda> listaVenda = dao.listaVenda();

        ModelAndView modelAndView = new ModelAndView("relatorios/relatoriomes");
        modelAndView.addObject("listas",listaVenda);

        return modelAndView;

E o meu jsp

<c:forEach items="${listas}" var="lista" varStatus="status" >
<p>${lista.procedimento[status.index].valor}</p>
</c:forEach>

ai tem 4 tipos de objeto venda la no banco ele so esta me retornando uma insiro um bocado de vendas ele no maximo me retorna so 4 objetos do banco o que será ?

6 respostas

Olá, Gabriel.

Provavelmente, só está retornando as vendas que possuem procedimentos, não é mesmo?

Para obter também as vendas sem nenhum procedimento, use o left join:

select v from Venda v left join fetch v.procedimento

Fiz isso e nada...na verdade toda venda tem um procedimento que guarda os detalhes da venda entendeu ai nao sei porque ele nao esta vindo de jeito nenhum so aparece a primeira venda o restante vem vazio e quando olho pelo prompt do MYSQL os dados estão la porem ele puxa com esse bug ai

Outra coisa tenho 5 vendas la no banco A,B,C,D,E ai chego la e dou esse comando

select * from Venda inner join venda_procedimento where dataCompra>= '2018-04-30';
`

ai o certo era ele me retornar as 5 vendas pois as datas são maiores que essas. Só que não é como se eu repetisse o mesmo comando cinco vezes...! que loucura tem alguma coisa errada nesse meu codigo ai ?

Oi, Gabriel.

Não entendi essa última mensagem.

Qual é a saída da query no MySQL?

Resumindo eu to colocando essa query ele so esta trazendo um tipo de dado exemplo "Nome" o restante dos campos ele não esta trazendo na List.

se eu por right e left antes do join ele dá excepetion só rola se eu eu por join fetch e ele de maneira nenhuma tras todos os dados da tabela so tras o primeiro campo o resto nada !