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 :

[hibernate] utilisation des fonctions d'aggregation


Sujet :

Hibernate Java

  1. #1
    Membre régulier
    Avatar de osopardo
    Inscrit en
    Juillet 2005
    Messages
    92
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Juillet 2005
    Messages : 92
    Points : 105
    Points
    105
    Par défaut [hibernate] utilisation des fonctions d'aggregation
    J'ai lut dans la doc qu'HQL supportait les fonctions comme count() et max(), j'ai donc tenté

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Query query = _sessionHibernate.createQuery("select max(gs.Niveau) from Groupseg as gs where gs.Idmessage = :idMessage");
    query.setInteger("idMessage", _idMessage.intValue() );
    for (Iterator it = query.iterate(); it.hasNext();) {
      Object[] ligne = (Object[]) it.next();
      System.out.println("niveau : " + (Integer) ligne[0] );
    }
    en rapport avec le mapping suivant :

    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
     
    <?xml version="1.0"?>
    <!DOCTYPE hibernate-mapping PUBLIC
    	"-//Hibernate/Hibernate Mapping DTD//EN"
    	"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd" >
     
    <hibernate-mapping package="local.gmi.convertisseur.hibernate">
    	<class name="Groupseg" table="groupseg">
    		<id
    			column="IDGS"
    			name="Idgs"
    			type="integer"
    		>
    		<generator class="vm" />
    		</id>
    		<property
    			column="NIVEAU"
    			length="6"
    			name="Niveau"
    			not-null="true"
    			type="java.lang.Short"
    		 />
    	</class>
    </hibernate-mapping>
    Si je met juste gs.Niveau dans le select ça passe mais avec le max() je me retrouve avec une "ClassCastException" dès la ligne "Object[] ligne = (Object[]) it.next();" j'ai testé en castant avec un Short au lieu du Integer pour la récupération du niveau au cas où mais j'obtient rien de mieux...

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 274
    Points : 307
    Points
    307
    Par défaut
    HQL supporte parfaitement les fonctions d'agrégation.

    As-tu essayé quelque chose du genre ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Query query = _sessionHibernate.createQuery("select max(gs.Niveau) from Groupseg as gs where gs.Idmessage = :idMessage");
    query.setInteger("idMessage", _idMessage.intValue() );
    Short result = (Short) query.uniqueResult();

  3. #3
    Membre régulier
    Avatar de osopardo
    Inscrit en
    Juillet 2005
    Messages
    92
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Juillet 2005
    Messages : 92
    Points : 105
    Points
    105
    Par défaut
    Ca marche ! Merci !

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 16/04/2009, 15h44
  2. [VB.NET][Excel] utiliser des fonction Excel comme xlToRight
    Par Alexj51 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 01/03/2006, 12h10
  3. [Xml/XSl] utiliser des fonction vb
    Par ekmule dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 17/01/2006, 17h28
  4. utilisation des fonctions d'une dll
    Par jackk dans le forum C++
    Réponses: 14
    Dernier message: 15/06/2005, 16h50
  5. Utiliser des fonctions Pascal
    Par Neilos dans le forum C++Builder
    Réponses: 2
    Dernier message: 07/03/2004, 15h43

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