5
respostas

O meu createQuery do EntityManager não le select comum?

O meu createQuery do EntityManager não le select assim? select * from Cliente

Quero fazer uma Query para retornar uma lista de cliente, e ele não me traz com o select normal.

    em.getTransaction().begin();
        Query query = em.createQuery("select nome from cliente ");
        List<Cliente> clientes = query.getResultList();
        for(Cliente c: clientes) {
            System.out.println(c.getNome());
        }
        em.getTransaction().commit();
        em.close();
    }

Assim ele da erro, como seria o código dentro do createQuery?

5 respostas

Qual erro que ele está aparecendo, Alisson?

Só um detalhe, em algumas versões do Linux o mysql é case sensitive.O nome da sua tabela é cliente ou Cliente? Se for seu caso, teste com

select nome from Cliente

Ola lucas o erro é este

    Caused by: org.hibernate.hql.internal.ast.QuerySyntaxException: cliente is not mapped [select nome from cliente]

Você tem uma anotação na sua classe Cliente?

@Table(name="Cliente")
class Cliente {
...

A query em si está correta. O problema é que ele não está reconhecendo cliente. Como comentei antes, poderia ser apenas escrever como Cliente (da mesma forma que você escreveu na primeira linha. Ou o Hibernate não está fazendo o mapeamento corretamente como eu comentei agora. Certifique-se que tem essa anotação assim e que não há erros de digitação.

Ola lucas eu ainda estou no começo do curso do jpa e hibernate, vou fazer o outro logo após esse, e concerteza meu erro sera exclarecido, obrigado pela paciencia e por me ajudar, é que eu apreendo mais tentando fazer e depois vejo umas video aula pra apreender mais ainda. muito obrigado man!

insira seu código aqui

Olá Alisson, tudo bem?

Apenas uma dúvida, você teria a anotação @Entity na sua classe Cliente?