Utilizando o objeto PreparedStatement do JDBC, você configura os parâmetros da sua consulta SQL da seguinte maneira:

PreparedStatement stmt = seuObjetoConnection.

            prepareStatement("select * from user where idade = ? and nome = ?");

stmt.setInt(1,idade);

stmt.setString(2,nome);

Existem duas maneiras de configurar parâmetros para consultas na EJB QL: identificados e posicionais.

Identificados

Query query = entityManager.

  createQuery("from User u where u.idade =:idade and u.nome =:nome");query.setParameter("idade",idade);

query.setParameter("nome",nome);

Posicionais

Query query = entityManager.

  createQuery("from User u where u.idade =?1 and u.nome =?2");query.setParameter(1,idade);

query.setParameter(2,nome);

As diferenças entre parâmetros identificados e posicionais:

  • identificados: :nome_Do_Parametro
  • posicionais: ?numero_Do_Parametro