Query dinamica - could not locate named parameter [el1] - [RESOLVIDO]

Galera, estou fazendo uma query dinamica, só que estou recebendo o seguinte erro:

could not locate named parameter [el1]

	public List<CorretorPessoa> listaCorretores() {
		List<CorretorPessoa> listaCorretores = null;
		List<String> queryDinamica = new ArrayList<String>();
			
			if(nomeCorretor != null){
				queryDinamica.add("result.pessoa.nomePessoa like '%#{nomeCorretor}%'"); // AQUI ELE É A LINHA PROBLEMÁTICA
			}
			if(creciCorretor != null && creciCorretor.equalsIgnoreCase("")){
				queryDinamica.add("result.corretorCreci = #{creciCorretor}");
			}
			if(classificacaoSelecionada != null){
				queryDinamica.add("result.classificacao = #{classificacaoSelecionada}");
				this.setValor(true);
			}			
			try {
				EntityQuery<CorretorPessoa> entityQuery = new EntityQuery<CorretorPessoa>();
				entityQuery.setEntityManager(entityManager);
				entityQuery.setEjbql(" FROM CorretorPessoa result");
				entityQuery.setRestrictionExpressionStrings(queryDinamica);
				
				listaCorretores = entityQuery.getResultList();
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		return listaCorretores;
	}

Usando somente o like sem ’ e % funciona, só que quando eu coloco dá o erro mencionado acima.

Ao invés de passar o valor em formato EL (#{nomeCorretor}), você não teria que passar a String?

Já tentei passar uma String, só que dá o seguinte erro:
there should be exactly one value binding in a restriction: org.jboss.seam.core.Expressions$1@425c28

passei dessa forma:

if(nomeCorretor != null){ queryDinamica.add("result.pessoa.nomePessoa like '%"+nomeCorretor+"}%'"); }

Vc deixou uma chave: ‘%"+nomeCorretor+"}%’

Ops, foi erro meu na hora de digitar aki. Mas mesmo assim o erro continua:

    if(nomeCorretor != null){  
            queryDinamica.add("result.pessoa.nomePessoa like '%"+nomeCorretor+"%'");  
        }  

ERRO:
there should be exactly one value binding in a restriction: org.jboss.seam.core.Expressions$1@425c28

Consegui fazer funcionar.
if(nomeProduto != null){ queryDinamica.add("lower(produto.nomeProduto) like concat(lower(#{nomeProduto}),'%')"); }
Só que ele me retorna tudo o que começa com o que é passado. Eu queria que ele me retorna-se tudo que tiver o que foi passado.
Por exemplo:

Bombom recheado de amendoin
Bombom recheado de coco
Bombom recheado de morango

Quando digito Bombom ele faz certinho. Traz todos os bomboms, só que quando digito recheado ele não traz nada. O que está faltando?

Ops…
Consegui resolver

if(nomeProduto != null){ queryDinamica.add("lower(produto.nomeProduto) like concat('%',lower(#{nomeProduto}),'%')"); }

Não tinha visto que estava faltando o ‘%’ do lado esquerdo do lower.