IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JPA Java Discussion :

Requête jpql et paramètres sous forme de Map


Sujet :

JPA Java

  1. #1
    Membre confirmé
    Avatar de Khaled.Noordin
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    354
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 354
    Points : 497
    Points
    497
    Billets dans le blog
    1
    Par défaut 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 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

  2. #2
    Membre confirmé
    Avatar de Khaled.Noordin
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    354
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 354
    Points : 497
    Points
    497
    Billets dans le blog
    1
    Par défaut
    Après test le deuxième extrait de code fonctionne.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 28/09/2013, 20h26
  2. Requête SQL avec paramètre sous visual studio 2008
    Par Jeecer dans le forum Accès aux données
    Réponses: 3
    Dernier message: 21/08/2011, 10h18
  3. Réponses: 5
    Dernier message: 04/05/2009, 23h47
  4. [requête] récupérer la date sous forme de chiffre
    Par celiaaa dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 19/12/2006, 16h25
  5. [Virtual Pascal] Paramètre sous forme de constante non typée
    Par Alcatîz dans le forum Autres IDE
    Réponses: 3
    Dernier message: 18/06/2006, 08h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo