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...