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

Hibernate Java Discussion :

probleme requete hql


Sujet :

Hibernate Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 93
    Points : 81
    Points
    81
    Par défaut probleme requete hql
    bonjour a tous.

    j ai une requete du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    session.createQuery("select new Allperson(father,mother,child) from Father father,Mother mother,Child child").list()
    et j affiche le resultat dans scrollableDataTable du genre
    colum value="item.Mother.name" ect
    le probleme est que dans la table il n y a que la premiere ligne qui se repete autant de foix qu il y de ligne dans le resultat de la requete
    quelqu un a deja utiliser ce genre de requete le probleme doit peu etre venir de la classe allperson qui a un constructeur du genre
    public Allperson(Father father,Mother mother,Child child)
    les objets Father,... sont des entitys.
    toutes pistes est la bien venue,je continue a chercher

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    Citation Envoyé par goomie Voir le message
    et j affiche le resultat dans scrollableDataTable
    Soit plus précis. Montre le code de ta datatable et précise de quel scrollableDataTable tu parle, ils existe des dizaines de composants portant ce nom.

    edit: c'est quoi cette requete HQL? C'est censé retourner quio exactement. Si je la lit bien, ca va faire une jointure entre les trois table, et tu aura comme liste toutes les combinaison 'mother/father/child', sans qu'il yaie de lien entre eux. La doc hql donne un exemple pour faire des requete pere/mere/enfant retourné dans une classe:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select new Family(mother, mate, offspr)
    from DomesticCat as mother
        join mother.mate as mate
        left join mother.kittens as offspr

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 93
    Points : 81
    Points
    81
    Par défaut queqlues precision
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    //extrait de la page jsp j utilise richfaces.
     
    <rich:scrollableDataTablevar="item"value="#{accueilArdiBean.listePersonne}" width="750">
    
    <rich:column>
    <f:facetname="header"><h:outputLabelvalue="Numéros Interne"/></f:facet>
    <h:outputTextvalue="#{item.person.persnum}"></h:outputText>
    </rich:column>
    
    
    
    
    </rich:scrollableDataTable>
    

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    //extrait de la classe AllPerson
    public AllPerson(Personne person,Admin admin,Telephone telephone){
    this.person=person;
    this.admin=admin;
    this.telephone=telephone;
    
    }
    //c est le constructeur appeller lors de la requete
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    //extrait de la requete
    sqlquery = ((Query)((Session)FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("SessionEcard").getClass().getMethod("getSessionecard1").invoke(FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("SessionEcard"))).createQuery("select new com.managedBean.AllPerson(personne,admin,telephone) from Personne as personne,Admin as admin,Telephone as telephone where personne.perscategorie=\'ASSURES\'"));
    listePersonne=(List<AllPerson>)sqlquery.list();
    
    

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 93
    Points : 81
    Points
    81
    Par défaut a propos de la requete
    je veux avoir un resultat du genre
    select mother.name,father.name, from mother,father,child

  5. #5
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    ta query devrais plutot être il me semble

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select new com.managedBean.AllPerson(personne,personne.admin,personne.telephone) from Personne as personne where personne.perscategorie='ASSURES'
    (je suppose car je ne connais pas tes liens entre personne, admin et téléphone)

    La query que t'as présenté aurait laché, si t'as 5 personnes, 2 admins et 10 numéros de téléphone 5*2*10 = 100 résultats puisque la query ne tiens aucun compte des liens de relations entres ces 3 tables.


    PS: je te recommande fortement de revoir ta manière de coder certaines chose, ce code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    sqlquery = ((Query)((Session)FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("SessionEcard").getClass().getMethod("getSessionecard1").invoke(FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("SessionEcard"))).createQuery("select new com.managedBean.AllPerson(personne,admin,telephone) from Personne as personne,Admin as admin,Telephone as telephone where personne.perscategorie=\'ASSURES\'"));
    listePersonne=(List<AllPerson>)sqlquery.list();
    est imbuvable et à mes yeux fait inutilement appel à la reflexion, ceci aurait eu le meme résultat en étant plus lisible et en resistant au refactoring.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SessionECard card = (SessionECard)FacesContext.getCurrentInstance()
            .getExternalContext().getSessionMap()
            .get("SessionEcard");
    sqlQuery = card.getSessionecard1().createQuery("......");
    Il pourrait encore etre amélioré en supprimant l'utilisation du faces context et de la session map qui peut etre utilisée directement dans le faces-config.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 93
    Points : 81
    Points
    81
    Par défaut merci pour t'es eclaicissement
    merci pour ta reponse tu peux developpe sur la maniere d'acceder au sessionMap depuis le faces-config..
    merci je suis en manque de connaissance vite! du savoir.

Discussions similaires

  1. probleme requete HQL netbeans
    Par meryam123 dans le forum Hibernate
    Réponses: 1
    Dernier message: 06/07/2011, 09h51
  2. probleme requet hql
    Par stacre dans le forum Hibernate
    Réponses: 0
    Dernier message: 09/04/2009, 13h51
  3. probleme requete hql
    Par pipo7610 dans le forum Hibernate
    Réponses: 2
    Dernier message: 05/09/2008, 16h28
  4. Probleme requete HQL
    Par newmar dans le forum Hibernate
    Réponses: 2
    Dernier message: 15/05/2008, 11h09
  5. [Hibernate] problème requete HQL !
    Par fadjerx dans le forum Hibernate
    Réponses: 6
    Dernier message: 11/08/2007, 12h45

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