Skip to content

Sessions détachées

January 9, 2010

L’un des moyens les plus efficaces de traiter de grandes quantités de données avec Hibernate est d’utiliser les session détachées (StatelessSession). Cette solution possède l’avantage de permettre l’utilisation des requêtes HQL (ou via des critères avec DetachedCriteria). L’autre avantage est de conserver les capacités de mapping et donc de récupérer des objects JAVA.

Typiquement, la SessionFactory permet de créer des sessions Hibernate normales. Elle permet aussi de créer des sessions détachées qui ne conserve pas l’état des objets (leur persistence). Cette utilisation est typique d’une sélection dans une base de données pour effectuer un calcul statistique (moyenne, etc.).

Bien que SQL puisse effectuer des travaux de calcul, il est parfois nécessaire, dans des cas complexe de faire intervenir un calcul manuel. Certains ce ces calculs peuvent être adressés par une procédure stockée. Certains autres, comme la création d’un graphique, requiert la lecture des données en base. Avec la persistence, tous les objets doivent être conservés en mémoire pour la durée de la session. Avec une session détachée, cela n’est plus nécessaire. On économise ainsi une quantité non négligeable de mémoire et on augment les performances en traitant les données « à la volée ».

Vous pouvez voir un exemple simple dans le tutoriel J2EE-like proposé dans la rubrique des articles.

From → Other

Leave a Comment

Leave a comment