Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Erro na sintase jpql busca por categoria.

java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException:

package finanças.test;

import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.Query;

import finanças.modelo.Categoria;
import finanças.modelo.Movimentacao;
import finanças.util.JPAUtil;

public class JPQL_ManyToMany {
public static void main(String[] args) {

    EntityManager em = new JPAUtil().getEntityManager();
    em.getTransaction().begin();

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

    String jpql = "select m from movimentacao m join m.categoria c where c = :pCategoria";

    Query query = em.createQuery(jpql);
    query.setParameter("pCategoria", categoria);

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

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

    em.getTransaction().commit();

    em.close();
}
}
1 resposta
solução!

Fala ai Andrey, o problema esta na sua SQL, veja que esta passando o nome da classe Movimentacao com M em minúsculo:

Seu código:

 String jpql = "select m from movimentacao m join m.categoria c where c = :pCategoria";

O correto:

 String jpql = "select m from Movimentacao m join m.categoria c where c = :pCategoria";

Espero ter ajudado.