vers l'accueil formulaire de contact

Tutoriel hibernate N°14 : transactions et gestion accès concurrents

Votre formation HIBERNATE avec Objis, spécialiste formation java depuis 2005 Maîtrisez la gestion d’accès concurrents aux données avec hibernate.Comprenez la notion de ’niveau d’isolation’ et la relation avec hibernate. Comprenez le versionning hibernate. récupérez l’exception ObjectStaleStateException.

Objis, spécialiste de la formation Java, est heureux de vous offrir ce tutoriel, extrait de séances pratiques de la formation HIBERNATE dispensée par Objis.

Les + objis
- 70% de travaux pratiques
- Clé USB avec tous les outils utilisés + Corrigés TPs
- Bilan pédagogique individuel + conseils

Prérequis, outils et versions

- Tutoriel Hibernate N°2 : votre première application hibernate

Liens utiles


- + de 100 tutoriaux java/jee Objis
- Tutoriaux HIBERNATE Objis
- Objis, spécialiste formation java depuis 2005
- Site hibernate (javadoc, faq)
- Documentation (chap. 10) : working with objects
- Niveaux d’isolation Postgresql

Objectifs

- Comprendre stratégie gestion accès concurrents avec hibernate
- Comprendre les niveaux d’isolation et relation avec hibernate

Programme

- Partie 1 : Mise en oeuvre versionnage Managé
- Partie 2 : Démonstration
- Partie 3 :

Durée

30 min.

Contexte et architecture cible

Une technique possible pour gérer l’accès concurrent est le ’versionning managé’ : ajoutez une propriété ’version’ dans votre entité.

PNG - 7.3 ko
tutoriel-hibernate-acces-concurrents-version-1

- Identifiez l’impact sur votre mapping.

PNG - 11.5 ko
tutoriel-hibernate-acces-concurrents-version-2

Considérez une application permettant de créez / mettre à jour un calendrier de formations java/jee (objis !) : titre de la formation et date.

PNG - 34.9 ko
tutoriel-hibernate-acces-concurrents-version-0

Deux personnes, Pierre (basé à Paris) et Jean (basé à Lyon), ont un profil ’Administrateurs’ et peuvent modifier les données en base de données.

L’administrateur Pierre, crée un premier évènement (FormationGWT le 10-10-2009). Résultat suivant :

PNG - 9.8 ko
tutoriel-hibernate-acces-concurrents-version-3

Puis il veut modifier la thème de cette formation (MAVEN au lieu de FormationGWT). Il clique sur le lien ’Modifier cet évènement’. L’écran suivant apparaît

PNG - 19.2 ko
tutoriel-hibernate-acces-concurrents-version-4

Au même moment le deux administrateur, qui a constaté l’erreur de thème de la formation à cette date, veut aussi modifier le thème mais cette fois avec SOA. Il clique lui aussi sur le lien ’Modifier cet évènement’. L’écran suivant apparaît

PNG - 25 ko
tutoriel-hibernate-acces-concurrents-version-5

Jean modifie effectivement le thème avec SOA.

PNG - 16.5 ko
tutoriel-hibernate-acces-concurrents-version-6

Lorsque Pierre veut mettre à jour le thème...

PNG - 18.9 ko
tutoriel-hibernate-acces-concurrents-version-7

...une exception particulière est levée par hibernate.

PNG - 26.6 ko
tutoriel-hibernate-acces-concurrents-version-8

- 

PNG - 18 ko
tutoriel-hibernate-acces-concurrents-version-9

Lignes d’erreur :

— ERROR org.hibernate.event.def.AbstractFlushingEventListener - Could not synchronize database state with session
— org.hibernate.StaleObjectStateException : Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect) : [com.objis.demohibernate.domaine.Event#1]

Exemple projet démo

Zip - 4.8 Mo
demoHibernateWebIntro

Conclusion

Dans ce tutoriel, vous avez mis en œuvre une technique de gestion des accès concurrents avec hibernate.

Prochaine formation HIBERNATE

Le chemin le plus court pour avoir les réflexes et la méthodologie du bon développeur Hibernate :

Votre formation HIBERNATE avec Objis, spécialiste formation java depuis 2005

Pour aller plus loin : le réseau Objis

Si vous appréciez notre sens du partage, devenez gratuitement membre ’classic’ du Club Objis :
- Votez pour les prochains tutoriaux à publier
- Préparez vos entretiens techniques
- Valorisez votre profil / expertise
- Identifiez des opportunités d’emploi
- Recevez la newsletter objis.com