Só que agora o outro exercício parou de funcionar...rs.
public class TesteJPQLMovimentoUmaCategoria {
public static void main(String[] args) {
EntityManagerFactory emf = Persistence.createEntityManagerFactory("contas"); //o nome contas vem do arquivo de persistencia
EntityManager em = emf.createEntityManager();
Categoria categoria = new Categoria();
categoria.setId(1L);
String jpsql = "select m from Movimentacao m join m.categoria c where c = :pCategorias";
//informo tipo de query que a lista deverá retornars
TypedQuery <Movimentacao> query = em.createQuery(jpsql, Movimentacao.class);
query.setParameter("pCategorias", categoria);
List<Movimentacao> resultList = query.getResultList();
for (Movimentacao movimentacao : resultList) {
System.out.println("Descrição:" + movimentacao.getDescricao());
System.out.println("Tipo:" + movimentacao.getTipoMovimentacao());
System.out.println("Valor:" + movimentacao.getValor());
System.out.println("Categoria:" + movimentacao.getCategorias());
}
emf.close();
}
}
Exception in thread "main" java.lang.IllegalArgumentException: org.hibernate.QueryException: could not resolve property: categoria of: br.com.alura.jpa.modelo.Movimentacao [select m from br.com.alura.jpa.modelo.Movimentacao m join m.categoria c where c = :pCategorias]
Além disso, antes quando a relação estava @ManyToOne não trazia só as movimentações da categoria 1 passada como argumento, mas de todas as categorias.
Esse erro ai eu não estou conseguindo resolver.