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 :

Récupération résultat raquette HQL


Sujet :

Hibernate Java

  1. #1
    Membre confirmé
    Inscrit en
    Mars 2009
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 93
    Par défaut Récupération résultat raquette HQL
    Bonjour j'ai la requette HQL suivante qui génere bien la requette SQL que je désire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
        public List getLstFichierPrRetourQuotidien(RetourQuotidien retourQuotidien){
            Session currentSession = HibernateUtil.currentSession();
            Query req = currentSession.createQuery("select env.referenceFichier,count(*) from DetailRetourQuotidien ret,FichierEnvoi env "
                                                 + "where env.referenceFichier=ret.refFichier and "
                                                 + "ret.retourQuotidien.dateRetour='"+retourQuotidien.getDateRetour()+"' "
                                                 + "group by env.referenceFichier");
     
            return req.list();
        }
    Le problème est que je sais pas comment récupérer les résultats, elle retourne quelque chose du type:
    F1 11
    F2 45
    F3 60
    Comment je peux dire à hibernate qu'il s'agit d'une liste qui contient un string et une valeur j'ai testé avec la classe suivante mais sans succès j'ai un castexception:
    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
     
    public class Test {
        private String fichier;
        private int nbr;
     
        public String getFichier() {
            return fichier;
        }
     
        public void setFichier(String fichier) {
            this.fichier = fichier;
        }
     
        public int getNbr() {
            return nbr;
        }
     
        public void setNbr(int nbr) {
            this.nbr = nbr;
        }
     
     
    }
    Cordialement.

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

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 095
    Par défaut Une piste
    L'utilisation de List n'est pas la bonne solution à mon sens. Je penses que c'est une sorte de raccourcis valable en phase de debogage pour pister un problème plutôt que pour de l'exploitation. Dans votre cas, il serait je penses plus simple de récupérer un ScrollableResults via la méthode scroll() sans paramètres depuis votre instance de Query. Avec ce ScrollableResults, vous aurez la liberté de lire votre table de résultats comme bon vous semble et de récupérer vos valeurs via la méthode adéquat, getString(N°/nom colonne) pour récupérer une chaîne, getInteger(N°/nom colonne) pour récupérer un entier, etc...
    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 confirmé
    Inscrit en
    Mars 2009
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 93
    Par défaut
    Merci beaucoup pursang c'est exactement ce que je cherchai. Je voudrais juste ajouter une petite indication qui est bonne à savoir, je travaille avec une base SQL SERVER 2000 et si je mets pas dans la méthode scroll le paramètre suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (ScrollMode.FORWARD_ONLY)
    ça marche pas, dans la javadoc hibernate il dise que ça dépend du driver.

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 276
    Par défaut
    Ou alors modifie ta requête avec quelque chose du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select new Test (env.referenceFichier, count(*) from  ...
    En prenant soin de définir le constructeur qui va bien dans ta classe Test:
    Test (fichier, nbr)

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

Discussions similaires

  1. Pb récupération résultat via dbUtils
    Par lalyly dans le forum JDBC
    Réponses: 2
    Dernier message: 08/12/2006, 13h02
  2. récupération résultat requête
    Par philippe281281 dans le forum Requêtes
    Réponses: 10
    Dernier message: 05/07/2006, 10h46
  3. [PEAR] Récupération résultat d'une requête
    Par lodan dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 01/07/2006, 15h54
  4. Récupération résultat d'une PS dans une variable
    Par Goldorak2 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 06/06/2006, 13h57
  5. Réponses: 5
    Dernier message: 13/03/2006, 18h22

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