Requête jpql et paramètres sous forme de Map
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:
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:
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