2
respostas

Dúvida select

porque dentro do createQuery não posso usar ] no select o select * from Pedidos e tenho que usar select p from Pedidos p { Query query = entityManager.createQuery("select * from Pedido", Pedido.class); List pedidos = query.getResultList();

    model.addAttribute("pedidos", pedidos);
    return "home";

}
    sendo que so funcionou com o apelido p

-> 
    Query query = entityManager.createQuery("select p from Pedido p", Pedido.class);
    List<Pedido> pedidos = query.getResultList();

    model.addAttribute("pedidos", pedidos);
    return "home";
2 respostas

Olá Guilherme,

neste caso, o método createQuery espera uma consulta em JPQL que é bem parecido na sintaxe com o SQL, porém, ele se baseia na entidade do Java e não na tabela física do banco. Logo, para retornar todos os atributos da entidade, você utiliza o apelido que deu a ela, no caso o "p". No curso Persistência com JPA: Introdução ao Hibernate há um capítulo que trata da JPQL.

Espero ter ajudado.

obrigado