Dúvida criteria JPA

Galera, tenho uma dúvida simples.
Tenho uma tabela de produto, e nela tem o campo que armazena o id do Grupo que pertence esse produto. Estou tentando criar um método que me retorne todos os produtos de um determinado grupo.

Dei uma procurada no fórum e na deep web e meio que montei um código “frankenstein” hahahha, mas não consegui fazer ele retornar os produtos.
Gostaria de saber como devo fazer isso, e se o código que fiz está certo.

public List<Produto> findByGrupo (int idGrupoProduto) { em = emf.createEntityManager(); em.getTransaction().begin(); CriteriaBuilder cb = em.getCriteriaBuilder(); CriteriaQuery cq = cb.createQuery(Produto.class); Root<Produto> root = cq.from(Produto.class); Predicate byGrupoProduto = cb.equal(root.get("idGrupoProduto"), idGrupoProduto); cq.where(byGrupoProduto); return em.createQuery(cq).getResultList(); }

Agradeço desde já por qualquer ajuda!

Alguém?
também preciso

Cara… voce pode fazer uma junção dessas classes e fazer uma consulta pelo id do Grupo e retornar todos os produtos daquele grupo

vou postar um exemplo ve se te ajuda

	public ArrayList<GrupoProduto> buscarPorGrupo(Integer codigoGrupo) throws ConsultarException, Exception{
		Session s = getSessaoAberta();
		try{
			Criteria c = s.createCriteria(GrupoProduto.class);			
                        //onde idGrupo, é o id da classe grupo e grupo seria com que vc faz a ligação com produto
			c.createAlias("grupo", "idGrupo", Criteria.INNER_JOIN);
                        //onde o idGrupo é igual com o parametro que no caso vai ser digitado pelo usuário
			c.add(Restrictions.eq("idGrupo", codigoGrupo));								
			return (ArrayList<GrupoProduto>) c.list();
		}catch (Exception e) {
			throw e;
		}finally{
			s.close();
		}
	}

espero que ajude…

Amigo, obrigado pela ajuda!
Eu até tentei por namedquery e não consegui, postei até outra dúvida.

Vou tentar do jeito que você falou, qualquer coisa volto aqui.
Obrigado pela ajuda!!