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 :

LockMode.NONE versus LockMode.READ


Sujet :

Hibernate Java

  1. #1
    Membre averti Avatar de ZeRevo
    Inscrit en
    Avril 2007
    Messages
    302
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Avril 2007
    Messages : 302
    Points : 343
    Points
    343
    Par défaut LockMode.NONE versus LockMode.READ
    Salut

    Je ne comprend pas la différence entre le mode LockMode.NONE et le mode LockMode.READ.

    LockMode.READ génére une requête SELECT et attache l'objet à la session hibernate. LockMode.NONE représente l'absence de verrou mais concrétement ca veut dire que les objets deviennent détachés de la session où ça réattache l'objet à la session sans générer de requête ?

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    383
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 383
    Points : 468
    Points
    468
    Par défaut
    LockMode.NONE est le mode par défaut utilisé par les méthodes load() et get(). Il veut dire qu'une requête ne sera effectuée (et l'objet attaché à la session) que si l'objet n'est pas déjà en cache.

    LockMode.READ effectue une vérification pour savoir si la version en base est la même que la version en mémoire.
    Par exemple session.lock(product, LockMode.READ); permet de vérifier si l'instance détachée de product n'a pas été mise à jour par une autre transaction depuis qu'elle a été chargée.

  3. #3
    Membre averti Avatar de ZeRevo
    Inscrit en
    Avril 2007
    Messages
    302
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Avril 2007
    Messages : 302
    Points : 343
    Points
    343
    Par défaut
    Si je fais session.lock(product, LockMode.NONE); est-ce que l'objet détaché sera réattaché à la session hibernate ? (même s'il n'y a pas de test sur la version avec la bdd)

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    383
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 383
    Points : 468
    Points
    468
    Par défaut
    Oui, dans tous les cas l'objet est attaché à la session hibernate.

    Tu peux utiliser session.lock(product, LockMode.NONE) si tu es sûr que la version en base est la même que celle de l'objet détaché

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. C# versus Java
    Par laffreuxthomas dans le forum C#
    Réponses: 368
    Dernier message: 30/03/2019, 22h59
  2. TUniQuery - Propriété lockmode
    Par briaume dans le forum Composants VCL
    Réponses: 1
    Dernier message: 19/01/2015, 19h10
  3. Fonction read() versus caractères accentués
    Par bdeschenes dans le forum Bibliothèque standard
    Réponses: 4
    Dernier message: 09/10/2008, 16h43
  4. [controle] propriété read only
    Par Fizgig dans le forum Composants VCL
    Réponses: 6
    Dernier message: 28/08/2002, 10h30
  5. CheckBox en Read Only
    Par MrJéjé dans le forum C++Builder
    Réponses: 7
    Dernier message: 23/06/2002, 15h00

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