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 :

Eviter l'enregistrement d'un many-to-one


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 92
    Par défaut Eviter l'enregistrement d'un many-to-one
    Bonjour,

    J'ai un objet Operation qui contient une relation many-to-one vers un autre objet Statut. Ce qui fait que à chaque fois que je sauvegarde l'objet Operation l'objet Statut est sauvegardé. Cependant cet Objet Statut ne change que sur certaines actions.

    Le fait que le Statut s'enregistre à chaque fois me pose problème dans le cas d'accès concurrent. Exemple:

    1) J'ouvre l'Operation A avec le statut A depuis l'utilisateur A
    2) J'ouvre l'Operation A avec le statut A depuis l'utilisateur B
    3) Je change le statut A en B de l'opération A via un bouton depuis l'utilisateur A
    4) j'enregistre la modification de l'utilisateur A
    5) l'utilisateur B enregistre l'opération (et donc le statut)

    Du coup le statut n'est plus correct.

    Comment puis-je faire en sorte que le statut lié à mon opération ne se mette à jour que si je fait un update explicite dessus?

    Merci

  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
    Si tu ne fais que changer la référence pour passer d'une référence status A en status B alors la valeur fait partir de l'objet operation et tu est fac e à une cas de modification concurrente de l'objet operation. Tu ne dois pas autoriser ça. Soit tu met en place un système de lock quelconque pour que si on demande à modifier l'operation, personne d'autre ne puisse le faire, soit tu utilise le système de versionning d'hiberante pour provoquer un message d'erreur quand on tente de sauver la deuxième fois l'opération.

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 92
    Par défaut
    Pourtant si j'utilise update=false sur ma relation many-to-one alors mon statut ne sera pas mise à jour pour mon opération quand je sauvegarderai celle-ci.

    Par contre c'est vrai que quand je fait un update dessus le statut n'est pas mise à jour.

    Y a til un moyen de mettre à jour avec update=false sur ma relation?

  4. #4
    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
    il va falloir choisir, soit tu fait la mise à jour automatique, soit tu ne le fait pas ^^. Si le update=false te conviens, rien ne t'empeche de manuellement sauver le status quand c'est nécessaire. Note que pour bien comprendre ton problème, avoir le mapping de Operation et status, ainsi que le champ qui est sauvé mais que tu ne veux pas sauver, ca pourrait nous être utile. Je suis pas sur qu'on parle de la meme chose

    Est-ce la relation que tu ne veux pas sauver ou le contenu de status?

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 92
    Par défaut
    C'est bien la relation que je ne veux pas sauver car le contenu du statut est prédéfini.

    J'ai réussi en faisant un update manuel lors de mes actions qui changent le statut. Ceci me permet de contrôler le changement de mon statut pour mon objet Opération. et ainsi d'éviter tous conflits.

    Merci pour votre aide

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 23/11/2011, 13h31
  2. [Hibernate]POJO et many-to-one
    Par azpublic dans le forum Hibernate
    Réponses: 3
    Dernier message: 13/07/2006, 15h00
  3. html:select et hibernate many-to-one
    Par davdou dans le forum Struts 1
    Réponses: 1
    Dernier message: 05/07/2006, 14h56
  4. Hibernate : suppression sur relation many to one
    Par taf dans le forum Hibernate
    Réponses: 1
    Dernier message: 23/05/2006, 13h08
  5. [hibernate] "many-to-one"
    Par mehdi_swatch dans le forum Hibernate
    Réponses: 26
    Dernier message: 12/05/2006, 20h11

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