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 :

Problème valeur préchargée?


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné Avatar de ruscov
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mars 2007
    Messages
    347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mars 2007
    Messages : 347
    Par défaut Problème valeur préchargée?
    Bonjour,

    Voici le morceau de code qui me pose problème :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    GroupData data = context.getRequest().groupData;
    Group oldGroup = groupManager.readByID(data.getID());
     
    Person oldGroupLeader = oldGroup.getDossier().getGroupLeader();
    PersonData newGroupLeader = data.getDossier().getGroupLeader();
     
    if(!oldGroupLeader.getUsername().equals(newGroupLeader.getUsername())){
     
    ...
     
    }
    Le but de l'opération est de comparé si le group leader a changé.
    Pour ce faire, je récupère le Groupe qui vient du contexte (qui contient donc les nouvelles valeurs entrées par l'utilisateur) et je le compare à celui qui est en DB (oldGroupLeader). Ce dernier est récupéré via Hibernate (Ligne 2 :readByID(...)).

    Mon soucis est que le oldGroupLeader contient déjà les nouvelles valeurs alors que je ne l'ai pas sauvé auparavant.
    Est-ce que je fais quelque chose de travers? Ou est-ce un comportement d'Hibernate que je n'aurais pas compris? Genre une mauvaise configuration?

    Merci pour votre aide.

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    quand vous faites un load, un get ou autre chose dans hibernate avec un identifiant précis de l'objet, au sein d'une même session, c'est toujours la même instance qui est retournée, instance cachée en session. donc si vous avez grosso-modo fait ceci:


    • démarrer session
    • x = charger(id=1234)
    • modifier le contenu de x, genre x.setUsername("tartempion");
    • y = charger(id=1234)
    • x==y? -> toujours vrai

    Vous devez faire vos modifications ailleurs que dans l'objet hibernante si vous voulez le comparer à l'objet hibernate. Ou, vous devez fermer la session et en ouvrez une nouvelle, dans laquelle vous transférez le vieil objet si nécessaire. Ou vous appelez session.evict(x) pour détacher x de la session (il n'est alors plus un objet hibernate).

  3. #3
    Membre chevronné Avatar de ruscov
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mars 2007
    Messages
    347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mars 2007
    Messages : 347
    Par défaut
    Merci pour la réponse! Je vais essayer ça.
    L'explication est logique et à mon avis c'est bien comme ça que c'est codé.

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

Discussions similaires

  1. problème valeur date dans une requête
    Par garsflo dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 03/06/2007, 19h13
  2. [function][delphi]problème valeur de retour
    Par daheda dans le forum Delphi
    Réponses: 2
    Dernier message: 14/11/2006, 13h26
  3. [C#] ProgressBar: Problème Valeur maximum
    Par LE NEINDRE dans le forum Windows Forms
    Réponses: 2
    Dernier message: 24/05/2006, 18h23
  4. Problème valeurs[VBA]
    Par Yanmeunier dans le forum Access
    Réponses: 1
    Dernier message: 18/05/2006, 15h17
  5. [html][xsl]Problème valeur attribut html
    Par beho dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 16/04/2005, 13h37

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