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 :

Convertir une requete SQL en HQL


Sujet :

Hibernate Java

  1. #1
    Membre à l'essai
    Inscrit en
    Septembre 2009
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 36
    Points : 20
    Points
    20
    Par défaut Convertir une requete SQL en HQL
    je veux convertir cette requette en HQL : quand je l'execute sur la Bdd il donne le resultat souhaité, mais sur le code avec une requete Hibernate Hql , il me donne un erreur !!

    Requete SQL :

    select Produits.* from Produits join Types on Produits.type_id = Types.id join Entreprises on Types.entreprise_id = Entreprises.id where Entreprises.id = '2'

    est ce que quelqu'un peux m'aider svp ???

  2. #2
    Membre expérimenté
    Avatar de yotta
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2006
    Messages
    1 088
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 088
    Points : 1 540
    Points
    1 540
    Par défaut JE crois que c'est bon.
    SELECT t FROM produits AS t, types AS t2, entreprises AS t3 WHERE t.type_id=t2.id AND t2.entreprise_id=t3.id AND t3.id=2;
    Une technologie n'est récalcitrante que par ce qu'on ne la connait et/ou comprend pas, rarement par ce qu'elle est mal faite.
    Et pour cesser de subir une technologie récalcitrante, n'hésitez surtout pas à visiter les Guides/Faq du site !

    Voici une liste non exhaustive des tutoriels qui me sont le plus familiers :
    Tout sur Java, du débutant au pro : https://java.developpez.com/cours/
    Tout sur les réseaux : https://reseau.developpez.com/cours/
    Tout sur les systèmes d'exploitation : https://systeme.developpez.com/cours/
    Tout sur le matériel : https://hardware.developpez.com/cours/

  3. #3
    Membre à l'essai
    Inscrit en
    Septembre 2009
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 36
    Points : 20
    Points
    20
    Par défaut
    je l'ai essayer mais ce ne marche pas aussi !!

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 311
    Points : 9 524
    Points
    9 524
    Billets dans le blog
    1
    Par défaut
    Quelle est l'erreur, peux-tu montrer le stack trace ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre à l'essai
    Inscrit en
    Septembre 2009
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 36
    Points : 20
    Points
    20
    Par défaut
    voila la methode est comme suite :
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    public List allcatproduits(int id){
     
         Query ProduitsResultlimit;
         List Reslutlimit=null;
        try {
            // Récupération de la session Hibernate à partir de la Factory
            Session session = HibernateUtil.getSessionFactory()
                    .getCurrentSession();
     
            // Démarrage de la transaction
            session.beginTransaction();
     
     
            // Requête HQL de sélection de toute les produits dans la base
     
         ProduitsResultlimit = (Query)session.createQuery("select t from Produits as t, Types as t2, Entreprises as t3 where t.type_id=t2.id and t2.entreprise_id=t3.id and t3.id='"+id+"'");
     
                      //convertir le resultat en List
                     Reslutlimit=ProduitsResultlimit.list();
     
            // Execution de la transaction
            session.getTransaction().commit();
     
            // Journalisation dans la console
            s_log.info("Récupération des Produits effectués");
            s_log.info("Le nombre des Produits est :"
                    + (Reslutlimit).size());
     
        } catch (HibernateException e) {
            s_log.info("**Erreur** lors de la récupération des Produits");
        }
     
        return Reslutlimit;    
    }
    au niveau de la console ca donne ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    17 févr. 2010 07:21:03 Class.metier.UserManager allcatproduits
    INFO: **Erreur** lors de la récupération des Produits

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 311
    Points : 9 524
    Points
    9 524
    Billets dans le blog
    1
    Par défaut
    Utilise la balise [ code ] svp... (voir les règles du forum)

    Peux-tu remplacer ton catch par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    
    catch (HibernateException e) 
    {
       e.printStackTrace();
       s_log.info("**Erreur** lors de la récupération des Produits");
    }
    et montrer la trace...
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Membre à l'essai
    Inscrit en
    Septembre 2009
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 36
    Points : 20
    Points
    20
    Par défaut
    Merci OButterlin, il ma donner type_id cannot be resolved

    alors sur Hibernate mapping j'ai trouver que j'ai oublier de déclarer cette attribut, alors je l'ai déclarer, et ensuite le probleme est résolue la requete est executée.

    OButterlin t le meilleur

  8. #8
    Membre à l'essai
    Inscrit en
    Mai 2009
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 27
    Points : 19
    Points
    19
    Par défaut
    Bonjour à tous et à toutes

    je suis debutant en Hibernate ;

    je voudrais aussi convertir cette requete SQL en HQL :

    (j'ai travaillé avec cette requete en sql est ça marche )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    
    String requete = "SELECT TO_CHAR(DAT_DEBT,'DD/MM/YYYY HH24:MI:SS') AS DAT_DEBT, NUMR_APPELANT, DESC_CERC, CL.NOM AS NOM_APPELE, CL.PRNM AS PRENOM_APPELE, M.ADRS AS ADRS_APPELE, M.COD_POST AS CODPOST_APPELE, M.VILL AS VILL_APPELE, METH.VILL, METH.COD_POST, METH.ADRS, DUR," +
                      		
                            " DURT_FACT, MONT_FACT , OLD_COMM_BALN_CRDT, COMM_BALN_CRDT, " 
                          
                      		+ " NUMR_APPELE, ESN_APPELANT, ESN_APPELE, DIRC_APPL, TYP_TRFC, IMSI_APPELANT,ICC_APPELANT, ICC_APPELE, PUK_APPELE, PUK_APPELANT, POS_APPELE, POS_APPELANT, DEAL_APPELE, DEAL_APPELANT, CLI.NOM, CLI.PRNM, D.PAYS_DEST AS PAYS_SOURCE , D.OPRT_DEST AS OPRT_SOURCE, O.PAYS_DEST AS PAYS_DEST , O.OPRT_DEST AS OPRT_DEST FROM TICKETS T LEFT OUTER JOIN OPRT_PAYS_DEST O ON T.ID_NUMR_TELP_DEST=O.ID_NUMR_TELP_DEST LEFT OUTER JOIN OPRT_PAYS_DEST D ON T.ID_NUMR_TELP_ORIG=D.ID_NUMR_TELP_DEST LEFT OUTER JOIN CLIENT CLI ON CLI.IDNT_CLNT=T.IDNT_CLNT_APPELANT LEFT OUTER JOIN CLIENT CL ON T.IDNT_CLNT_APPELE=CL.IDNT_CLNT LEFT OUTER JOIN CERCLE C ON T.IDNT_CERC_APPELANT=C.IDNT_CERC LEFT OUTER JOIN METHODE_CONTACT M ON T.IDNT_METH_CONT_APPELE=M.IDNT_METH_CONT LEFT OUTER JOIN METHODE_CONTACT METH ON T.IDNT_METH_CONT_APPELANT=METH.IDNT_METH_CONT WHERE DAT_DEBT>=TO_DATE('"+periodeDebut+"', 'DD/MM/YYYY HH24:MI:SS') AND DAT_DEBT<=TO_DATE('"+periodeFin+"', 'DD/MM/YYYY HH24:MI:SS')";
    				             




    Mon objectif est d'utiliser cette requete dans la méthode de recherche suivante :

    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
    16
    17
    18
    public List<Tickets> rechercheParDate(String dateDebut, String dateFin) {  
    	
    	Session session=HibernateUtil.getSessionFactory().getCurrentSession();
    	session.beginTransaction();
    	
    	String requete = " ?????????"		
    	
    
    	Query req=session.createQuery(requete);
    	req.setParameter("x", dateDebut);
    	
    	????????????????????????  
    	
    	return req.list();
    	
    	
    }


    Comment je peux gérer ça !!!!!!!!!!


    Merci de votre aide

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

Discussions similaires

  1. [CR 8] Question pour convertir une requete SQL SERVER en Requête CR
    Par nekro65 dans le forum SAP Crystal Reports
    Réponses: 11
    Dernier message: 24/06/2010, 11h37
  2. Equivalence d'une requete SQL En HQL
    Par baichoch dans le forum Hibernate
    Réponses: 1
    Dernier message: 26/05/2010, 16h32
  3. convertir une requete sql :oracle->mysql
    Par makavelli2007 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 01/04/2010, 13h54
  4. Convertir une requete SQL en HQL d'Hibernate
    Par Incinerator dans le forum Hibernate
    Réponses: 2
    Dernier message: 11/11/2008, 12h15
  5. Convertir une requete SQL en HQL d'Hibernate
    Par Incinerator dans le forum Hibernate
    Réponses: 1
    Dernier message: 10/11/2008, 18h00

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