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.

Advertisements

From → Other

Leave a Comment

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: