1
resposta

Java e JPA: Persista seus objetos com a JPA2 e Hibernate aula 6 teste Movimentação por categoria

public static void main(String[] args) {

    EntityManager manager = new JPAUtil().getEntityManager();

    Categoria categoria = new Categoria();
    categoria.setId(2);

    Query query = manager
            .createQuery("select m from Movimentacao m join m.categoria c where c = :pCategoria");

    query.setParameter("pCategoria", categoria);

    List<Movimentacao> movimentacoes = query.getResultList();

    for (Movimentacao m : movimentacoes) {
        System.out.println("\nDescricao ..: " + m.getDescricao());
        System.out.println("Valor ......: R$ " + m.getValor());
    }

}

} ao rodar o teste me aparece o erro: Exception in thread "main" java.lang.IllegalArgumentException: org.hibernate.QueryException: could not resolve property: categoria of: br.com.caelum.financas.modelo.Movimentacao [select m from br.com.caelum.financas.modelo.Movimentacao m join m.categoria c where c = :pCategoria] e a linha: could not resolve property: categoria of: br.com.caelum.financas.modelo.Movimentacao [select m from br.com.caelum.financas.modelo.Movimentacao m join m.categoria c where c = :pCategoria]

alguem pode me ajudar?

1 resposta

Fala, Saulo! Tudo bem contigo?

Desculpe a demora em dar um retorno!

O que eu pediria era para dar uma olhada em como esta escrito, na sua Classe Movimentação, o atributo categoria ou categorias

private List<Categoria> categoria;
OU
private List<Categoria> categorias;

Acredito que esteja no plural, pois não esta reconhecendo na query o m.categoria.

Veja se foi isso e nos dê um retorno, Saulo!

Aguardo seu retorno!

Um abraço!