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 :

[JPQL] Iterator sur plusieurs entités


Sujet :

JPA Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur
    Avatar de longbeach
    Profil pro
    Architecte de système d’information
    Inscrit en
    Avril 2003
    Messages
    943
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Avril 2003
    Messages : 943
    Par défaut [JPQL] Iterator sur plusieurs entités
    J’ai une petite question JPQL et je cherche la meilleure façon de faire ça.

    Les requêtes JPQL sont en général assez simples et portent sur une seule entité mais moi je veux récupérer plusieurs entités (Catalogue, Produit, Article) et itérer dessus :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    List resultats = (List)em.createQuery("SELECT c, d, e FROM Catalogue c, Produit p, Article a where c.id=p.catalogue_fk and p.id=a.produit_fk").getResultList(); 
     
    Iterator iter = resultats.iterator();
     
    while (iter.hasNext()) {
     
                …
     
    }
    Je n’ai pas encore regardé en détails, mais la liste se présente comment en mémoire ?

    {((Catalogue1), (Produit1), (Article1)), ((Catalogue2), (Produit2), (Article2)), … } ???

    Je veux par exemple afficher ce tableau :

    NomCatalogue – NomProduit – NomArticle

    nomCat1 nomProd1 nomArt1
    nomCat2 nomProd2 nomArt2
    nomCat3 nomProd3 nomArt3

    avec
    nomCatalogue : Catalogue.getName() …
    nomProduit : Produit.getName() …
    nomArticle : Article.getName() …

  2. #2
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    A priori, tu devrais récupérer (après correction de la requête, "c, d, e" devant être remplacés par "c, p, a") une liste d'Object[] avec :
    object[0] de type Catalogue
    object[1] de type Produit
    object[2] de type Article

    Ceci dit, il serait peut-être judicieux de changer le mapping et d'inclure les Objets adéquats (via many-to-one par exemple) plutôt que des clés étrangères, à toi de voir

    A+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Rédacteur
    Avatar de longbeach
    Profil pro
    Architecte de système d’information
    Inscrit en
    Avril 2003
    Messages
    943
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Avril 2003
    Messages : 943
    Par défaut
    ok merci.

    Si vous avez d'autres idées ou remarques ...

Discussions similaires

  1. Réponses: 4
    Dernier message: 03/03/2015, 11h39
  2. [2.x] Formulaire qui pioche sur plusieurs entités (+ sonata)
    Par Raphiduck dans le forum Symfony
    Réponses: 0
    Dernier message: 22/01/2014, 12h04
  3. Iterer sur plusieurs bases de données
    Par Alaedjens dans le forum Développement de jobs
    Réponses: 0
    Dernier message: 29/12/2013, 16h30
  4. [2.x] Validation : plusieurs formulaires sur une entité
    Par mvisel dans le forum Symfony
    Réponses: 6
    Dernier message: 06/06/2011, 15h29
  5. Iterer jobs talend sur plusieurs bases de données
    Par bash13 dans le forum Développement de jobs
    Réponses: 6
    Dernier message: 25/06/2010, 09h12

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