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 :

Ne mettre à jour que les données modifié


Sujet :

Hibernate Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 92
    Points : 80
    Points
    80
    Par défaut Ne mettre à jour que les données modifié
    Bonjour,

    J'ai un objet contenant un ensemble d'attribut. J'ai deux pages qui ont accès à cette objet. Cependant les informations modifiable sur ces deux pages sont différentes. Par exemple le page 1 peut modifier le nom et la page 2 peut modifier le prénom.

    Si les deux pages consultent le même objet en même temps alors les données saisie de l'autre page seront écrasé.

    Exemple:
    - la page 1 ouvre l'objet A.
    - la page 2 ouvre l'objet A.
    - la page 1 modifie le nom de l'objet A.
    - la page 2 modifie le prénom de l'objet A.
    - la page 1 quitte l'objet A et sauvegarde
    - la page 2 quitte l'objet A et sauvegarde.
    - L'objet A à perdu les modifications faite par la page 1.

    Ceci ne devrait pas arriver car je ne peut pas modifier le nom de l'objet A depuis la page 2.

    Mais a chaque fois que l'on met un objet à jour, Hibernate met à jour toutes les données.

    Comment peut ton faire pour ne mettre à jour que les données modifié par rapport à la base de données ?

    Merci

  2. #2
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    http://docs.jboss.org/hibernate/stab...laration-class

    Regarde du côté de dynamic-update, mais ce n'est pas garanti.

    EDIT: après légère réflexion, ça n'a pas l'air de correspondre à ton besoin

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    plusieurs possibilités

    1) le versioning. Si tu active le versioning dans hibernate, une colonne va garder els versions de l'objet. Quand la deuxième page essaiera de sauver, elle recevra un erreur due à la modification concurrente
    2) tu partage le meme objet entre les pages via la session de l'utilisateur. ainsi quand la page B tentera de modifier l'objet, elle fera un setPrenom sur un objet pour lequel nom est déjà à la nouvelle valeur. Inconvénient: impossible de respecter correctement des transaction (à ne pas recommander donc)
    3) quand tu "soumet" la page B, tu fait get d'un objet de la base de donnée, setPrenom, update de la base de donnée. Tu va donc faire un setPrenom sur un objet sur lequel setNom à déjà été fait. Attention, ajouter du versionning pour gérer les cas limite d'envoi simultané des pages A et B par des users différent, ou mettre un système de verrou pendant l'opération "load - set - flush - commit"
    4) faire des beans intermédiaire qui se chargent d'éviter ce problème de synhro.

    PS: hibernate ne gère pas de dirty flag par propriété. L'objet étant un tout, soit il est dirty et doit etre sauvé, soit il ne l'est pas.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 92
    Points : 80
    Points
    80
    Par défaut
    Cela correspond à mon besoin.

    merci beaucoup

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 16/04/2014, 16h17
  2. Réponses: 5
    Dernier message: 30/03/2011, 14h17
  3. Réponses: 10
    Dernier message: 30/01/2011, 11h53
  4. Réponses: 3
    Dernier message: 26/09/2007, 14h34
  5. [CR11] mise à jour source de donnée modifiée
    Par KrusK dans le forum SAP Crystal Reports
    Réponses: 9
    Dernier message: 16/08/2005, 14h36

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