Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Resultado da query errada

Estou tendo um problema na saída da query. Independentemente do id da categoria, o resultado do código será:

Categoria: [Categoria{id=1, nome='Negócios'}, Categoria{id=2, nome='Viajem'}, Categoria{id=3, nome='Férias'}]

O problema está no código ou tem haver com os dados que estão na tabela?

Código:

EntityManagerFactory managerFactory = Persistence.createEntityManagerFactory("contas");
        EntityManager entityManager = managerFactory.createEntityManager();

        String jpql = "SELECT m FROM Movimentacao m JOIN m.categorias c WHERE c = :pCategoria";

        Categoria categoria = new Categoria("Negócios");
        categoria.setId(2L);

        TypedQuery<Movimentacao> query = entityManager.createQuery(jpql, Movimentacao.class);
        query.setParameter("pCategoria", categoria);

        List<Movimentacao> resultList = query.getResultList();
        for (Movimentacao mov :
                resultList) {
            System.out.println("Descrição: " + mov.getDescricao());
            System.out.println("Valor: " + mov.getValor());
            System.out.println("Categoria: " + mov.getCategorias());
        }

        managerFactory.close();
2 respostas

Oi Gustavo

Sua query está um pouco problemática, o certo seria colocar no WHERE alguma coluna, exemplo:

select usuario from Usuario usuario
JOIN usuario.pessoa pessoa
WHERE usuario.senha = :senha
AND pessoa.matricula = :matricula
solução!

Bom dia Otávio, na verdade foi distração minha.

Eu deixei o hibernate.show_sql habilitado, e os resultados ficaram no meio da query, ao invés de ficarem no final. Não sabia que isso poderia acontecer