J'ai lut dans la doc qu'HQL supportait les fonctions comme count() et max(), j'ai donc tenté
en rapport avec le mapping suivant :
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] ); }
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...
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>
Partager