IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Hibernate Java Discussion :

Mapping Collection et accès concurrent


Sujet :

Hibernate Java

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Février 2003
    Messages
    191
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 191
    Points : 158
    Points
    158
    Par défaut Mapping Collection et accès concurrent
    Bonjour à tous,

    Je suis en train de développer une appli web et je me pose quelques questions au moment d'attaquer la gestion de la persistance...

    Admettons que je possède une classe Post qui contient une collection de commentaires.

    Je sais qu'il est possible d'utiliser Post en tant qu'entité de persistance c'est à dire que quand je sauve un objet Post, je veux qu'il sauve les modifications effectuées sur sa collection de commentaires. En gros sauver les nouveaux commentaires ajoutés à un Post.

    Mais comment faire quand 2 users travaille sur le même Post et ajoute chacun un commentaire ? Lorsque chaque User va sauver sont Post, le commentaire de l'autre n'apparaitra pas en gros ce sera la bordel non ?

    Comment remédier à cela ? Je suis un peu perdu j'avoue...

    Merci d'avance pour vos conseils...

  2. #2
    Membre actif Avatar de mOuLi
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2008
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2008
    Messages : 170
    Points : 257
    Points
    257
    Par défaut
    Si tu autorises les accès concurrents en MAJ sur une même instance de ta classe Post, tu risques effectivement de constater des effets bizarres.
    Si tu veux éviter ces modifications concurrentes, Hibernate propose des contrôles sur le mode de concurrence (voir chapitre 11 de la doc de référence).
    Pour résumer, tu as 2 possibilités :
    • Contrôle de concurrence pessimiste : dans ce cas tu te reposes sur les mécanismes de verrouillage du SGBC (LOCK FOR UPDATE) et l'un des 2 utilisateurs recevra une erreur SQL s'il tente de faire l'UPDATE.
    • Contrôle de concurrence optimiste : dans ce cas tu te reposes sur le fonctionnement d'Hibernate (basé sur les propriétés "version" ou "timestamp") pour empêcher le 2ème utilisateur de modifier un élément en cours de modification (on récupère une StaleObjectStateException)

Discussions similaires

  1. Acces concurrent sur une map
    Par boo64 dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 03/03/2011, 11h34
  2. Comment gérer l'accès concurrent de threads à une map STL C++ ?
    Par masterx_goldman dans le forum Windows
    Réponses: 1
    Dernier message: 15/09/2009, 15h55
  3. Lenteur et acces concurrent
    Par JeanMarc_T2k dans le forum Bases de données
    Réponses: 7
    Dernier message: 04/12/2004, 20h57
  4. acces concurrent avec delphi 5 entreprise
    Par Jean_paul dans le forum Bases de données
    Réponses: 2
    Dernier message: 30/11/2004, 20h19
  5. [EJB] Accès concurrents à la base de données
    Par cameleon2002 dans le forum Java EE
    Réponses: 10
    Dernier message: 23/09/2003, 11h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo