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érer un tableau statistique.


Sujet :

Hibernate Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2004
    Messages : 18
    Points : 17
    Points
    17
    Par défaut Récupérer un tableau statistique.
    Je souhaite faire des requêtes SQL statistiques pour un module de reporting.
    (Ma couche de persistence utilise déjà hibernate)
    Aujourd'hui, j'aimerais savoir dans quelle mesure il est possible de faire mes requetes statistiques avec hibernate. Celles-ci me renvoyant une matrice de données statistiques de dimensions non connues...

    Peut on mapper un tableau de données de dimensions inconnues ?
    Peut on créer un type de données adéquate ?
    Dois je utiliser l'API JDBC renvoyée par la session Hibernate ?
    Autre solution ?

    Merci à toute personne ayant une réponse à me donner.

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 163
    Points : 143
    Points
    143
    Par défaut
    Les Set, bag.... que l'on utilise avec les associations n'ont pas de taille connue !
    Hibernate les incremente lors de la récupération en base.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2004
    Messages : 18
    Points : 17
    Points
    17
    Par défaut Récupérer un tableau statistique [bis]
    Oui je comprends cette réponse.

    Mais mon besoin est assez spécial. Les données statistiques peuvent être récupérées sous forme de tableau. L'API java JDBC me permet de récupérer un ResultSet dont le nombre de colonne dépend de la requéte envoyée.

    "select id,name from matable order by id;"
    me renvoie un ResultSet contenant 2 colonnes et x lignes.

    "select count(*),id,name,lastname from matable order by id;"
    me renvoie un ResultSet contenant 4 colonnes et x lignes.

    J'aimerais savoir si je peux utiliser Hibernate pour générer des objects "tableaux" ressemblant au fonctionnement du ResultSet de l'API java.

    J'espère avoir été plus clair dans l'explicitation de mon problème.

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 163
    Points : 143
    Points
    143
    Par défaut
    Je pense que tu penses trop base de données, pas assez objet en fait.
    Ce que tu veux, c'est une liste Set, bag.... d'objets Java correpondant à ta table contenant tel et tel données...

    En gros :

    TABLE -> OBJET
    id_BASE id_OBJET
    attribut_BASE attribut_OBJET

    Et avec Hibernate, tu fera un load, ou un get (mieux) pour récupérer tes infos en base de ta table, et t'obtiendra un Set d'ojets avec des attributs contenant tes données....

    C'est les principes de base d'Hibernate en fait. La doc officielle en français est très bien.

    C'est ça, ou je n'ai pas compris la question.... ?

  5. #5
    Membre à l'essai
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2004
    Messages : 18
    Points : 17
    Points
    17
    Par défaut
    Je travaille avec Hibernate depuis qqs mois déjà. J'ai un modèle objet assez gros maintenant. J'apprécie tous les jours l'utilisation d'Hibernate dans mes devs.

    Toutefois, j'ai ce pb qui m'embette.

    Le contenu des beans générés correspond aux colonnes (mappées).

    Les Collections (Bags, et autres) renvoyées par Hibernate sont remplies (avec des beans) en fonction du nombre de lignes renvoyées par la requête SQL (finalement). Mais peut être puis je utiliser une collection d'une autre façon ?

    Ceci dit, j'ai des requêtes de type statistique (que je ne peux mapper sur aucun objet).
    Un coup ma requête m'envoie 4 colonnes (qui peuvent être des formules)
    l'autre coup 18 colonnes et bien sûr un nombre indéfini de lignes...

    Et je ne comprends pas bien comment je peux utiliser une Collection pour représenter mes resultats de requête...
    Peut être as tu un exemple plus concret ?

  6. #6
    Membre à l'essai
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2004
    Messages : 18
    Points : 17
    Points
    17
    Par défaut J'ai trouvé une solution ...
    Je crois que j'ai trouvé dans la doc Hibernate. Je joins ici la solution trouvée :
    En tout cas merci de ton aide. A bientôt.

    "10.4.1.3. Résultats scalaires

    Des requêtes peuvent spécifier une propriété d'une classe dans la clause select. Elles peuvent même appeler des fonctions d'aggrégat SQL. Les propriétés ou les aggrégats sont considérés comme des résultats "scalaires" (et pas des entités dans un état persistant).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Iterator results = sess.createQuery(
            "select cat.color, min(cat.birthdate), count(cat) from Cat cat " +
            "group by cat.color")
            .list()
            .iterator();
     
    while ( results.hasNext() ) {
        Object[] row = (Object[]) results.next();
        Color type = (Color) row[0];
        Date oldest = (Date) row[1];
        Integer count = (Integer) row[2];
        .....
    }
    "

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 163
    Points : 143
    Points
    143
    Par défaut
    Tu peux piocher de ce côté là :

    16.3. Requêtes SQL nommées

    "Vous pouvez externaliser les informations de mapping des résultats dans un élément <resultset> pour soit les réutiliser dans différentes requêtes nommées, soit à travers l'API setResultSetMapping()."
    Ou chercher à savoir si tes attributs sont renseignés, mais c'est lourd comme démarche....

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 163
    Points : 143
    Points
    143
    Par défaut
    Tu peux mettre quelles solutions tu as utilisé, ça peut servir à d'autres !

  9. #9
    Membre éclairé Avatar de BizuR
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    688
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 688
    Points : 757
    Points
    757
    Par défaut
    Jveux pas t'humilier loin de la cicolas ... mais il a mis sa solution juste au dessus déjà
    See you, space cowboy... and if you're satisfied, click on

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 163
    Points : 143
    Points
    143
    Par défaut
    Je n'avais pas vu car il a enregistré son post en même temps que le mien 11:59 et 12:00, je ne suis pas remonté plus haut pour lire !

  11. #11
    Membre éclairé Avatar de BizuR
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    688
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 688
    Points : 757
    Points
    757
    Par défaut
    Pour rattraper le coup, on dira que "les grands esprits se rencontrent" alors
    See you, space cowboy... and if you're satisfied, click on

  12. #12
    Membre à l'essai
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2004
    Messages : 18
    Points : 17
    Points
    17
    Par défaut Une Autre ?
    Je vous propose un autre sujet.
    Je vais en écrire un autre.
    Vous pourrez plancher dessus si ça vous dit...
    Toujours dans l'idée de sortir des sentiers battus d'hibernate...

  13. #13
    Membre éclairé Avatar de BizuR
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    688
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 688
    Points : 757
    Points
    757
    Par défaut
    Pas de souci, je m'y collerai
    See you, space cowboy... and if you're satisfied, click on

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

Discussions similaires

  1. [Tableaux] récupérer un tableau de valeur
    Par PAYASS59 dans le forum Langage
    Réponses: 7
    Dernier message: 16/02/2006, 12h22
  2. [Tableaux] récupérer un tableau sur une autre page
    Par samsso2005 dans le forum Langage
    Réponses: 3
    Dernier message: 27/01/2006, 22h58
  3. Réponses: 14
    Dernier message: 15/12/2005, 10h32
  4. Récupérer 2 tableau en un seul possible?
    Par Death83 dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 28/09/2005, 16h52
  5. récupérer un tableau de checkbox
    Par mr.t dans le forum ASP
    Réponses: 3
    Dernier message: 05/04/2005, 16h11

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