jeudi 2 octobre 2008

Effectuer une requête simple à l'aide d'Hibernate

Hibernate, même s'il est particulièrement à l'aise sur les problème d'informatique de gestion (Lecture/Modification d'enregistrements), ne peut se substituer à toutes les utilisations qui sont faite lors de SQL.

C'est particulièrement vrai lorsqu'on se sert de fonctions statistique, telle que SUM( ) ou COUNT(*) Dans ces cas une requête simple est préférable. Hibernate offre la possibilité de faire des requêtes simples par la fonction createSQLQuery("SELECT SUM(MACOL) FROM MATABLE").

Dans ce cas, inutile de "voler" la connexion hibernate pour s'en servir à sa place pour se servir des APIS fournies par JAVA, mieux vaut se servir des APIS hibernate.

Voici un exemple :

SQLQuery query = session
.createSQLQuery(
"SELECT count(*) FROM MATABLE WHERE MACOL1=? AND MACOL2=?");
query.addScalar("NOMBRE", Hibernate.FLOAT);
query.setDate(0, dateFinMois);
query.setInteger(1, commande.getId());
Float consommeEnFinDeMois = (Float) query.list().get(0);



L'utilisation de la fonction query.setScalar permet de typer la réponse.
query.setInteger(0,x) permet de fournir des paramètres à la requête.

Aucun commentaire: