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

Pesquisas orientado a objetos com JPQL, exercício gastos do titular

Pessoal, Tentei aplicar a query correta deste exercício na classe TestaConsulta. Primeiramente utilizei a codificação abaixo:

Query query = manager.createQuery("select m from Movimentacao m where m.conta.titular=:pTitular");

query.setParameter("pTitular", conta.getTitular());

na execução não houve retorno algum, apesar de não apontar erro. Então mudei o setParameter, colocando o nome fixo de um titular:

query.setParameter("pTitular", "Antonio Duraes");

E aí obtive o retorno das 3 movimentações feitas pelo "Antonio Duraes". A minha dúvida é: com getTitular() eu não deveria ter tido um retorno também? O que eu fiz errado?

3 respostas

Bom dia Mario, Se utilizando String vieram dados significa que a query está ok. Provavelmente o seu conta.getTitular está vindo algum valor que não existe no banco.

Primeiro dê um select e veja se existem 3 registros mesmo pra Antonio Duraes, depois coloque um System.out.println() pra ver o que realmente tem em getTitular e faça um select com esse valor.

Poste aqui o resultado!

Abraços

solução!

Guilherme,

Faltou eu fazer o find pela chave e carregar os atributos. Boa dica do do getTitular, estava vindo com null. Aí mudei o instanciamento para: Conta conta = manager.find(Conta.class, 2); E minha seleção funcionou perfeitamente. Obrigado!

Que bom Mario!! Bons estudos!