Bonjour/Bonsoir

Je cherche a créer un méthode qui prend une java.util.Map<String,Object> qui contiendrait mes paramètres de requête ordonné suivant celui de la map, un peu du genre :
Code java : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 public List<T> findWithNamedQuery(
         String stringQuery,
         Map<String, Object> params) {
  Query q = getEntityManager().
          createNamedQuery(stringQuery).
          setParameter(params);
  return (List<T>) q.getResultList();
 }
est ce possible avec jpa 2.0?

bien que la méthode de signature setParameter(java.util.Map) n'existe pas, alors est-il possible de boucler et ajouter à ma Query q un des paramètres à chaque itération tel que :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 public List<T> findWithNamedQuery(
         String stringQuery,
         Map<String, Object> params) {
  Query q = getEntityManager().
          createNamedQuery(stringQuery);
  Iterator it = params.entrySet().iterator();
  while (it.hasNext()) {
   Map.Entry<String, Object> pairs = (Map.Entry) it.next();
   q.setParameter(pairs.getKey(), pairs.getValue());
  }
  return (List<T>) q.getResultList();
 }
Ou Query serait elle figé à la première affectation?

Cordialement Khaled.Noordin