Criteria + left join + in

Pessoal, estou com a seguinte duvida …
eu já tenho uma query feita em String, através do createQuery do CriteriaBuilder.
Mas eu queria tirar isso do createQuery e fazer a mesma query usando Predicate.
será que é possível ?

a query que eu fiz é essa:

Query query = em.createQuery(
			        "select p from Produto p left join p.fornecedores f" +
			        " where f.fornecedor in :fornecedores");
			query.setParameter("fornecedores", fornecedores);

f é um HashSet
e :fornecedores é um List que vem por parâmetro no meu Método …

será que aguem pode me ajudar ? -

Sobre forçar Left Join, pesquise sobre CriteriaSpecification.LEFT_JOIN ou LEFT_OUTER_JOIN, não sei qual dos dois está deprecated. Exemplo: http://www.guj.com.br/java/225821-duvida-simples-sobre-criteria-e-alias

Sobre IN, pesquise sobre “Restrictions.in”. Exemplo: .add(Restrictions.in("id", new Long[] {1, 2, 3}));

vou pesquisar sim, obrigado