Estou tendo um problema na saída da query. Independentemente do id da categoria, o resultado do código será:
Categoria: [Categoria{id=1, nome='Negócios'}, Categoria{id=2, nome='Viajem'}, Categoria{id=3, nome='Férias'}]
O problema está no código ou tem haver com os dados que estão na tabela?
Código:
EntityManagerFactory managerFactory = Persistence.createEntityManagerFactory("contas");
EntityManager entityManager = managerFactory.createEntityManager();
String jpql = "SELECT m FROM Movimentacao m JOIN m.categorias c WHERE c = :pCategoria";
Categoria categoria = new Categoria("Negócios");
categoria.setId(2L);
TypedQuery<Movimentacao> query = entityManager.createQuery(jpql, Movimentacao.class);
query.setParameter("pCategoria", categoria);
List<Movimentacao> resultList = query.getResultList();
for (Movimentacao mov :
resultList) {
System.out.println("Descrição: " + mov.getDescricao());
System.out.println("Valor: " + mov.getValor());
System.out.println("Categoria: " + mov.getCategorias());
}
managerFactory.close();