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 :

Connaitre les modifications sur les objets


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Inscrit en
    Avril 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 3
    Par défaut Connaitre les modifications sur les objets
    Bonjour à tous !

    Je développe une application Java/Swing/Hibernate. Au démarrage de l'appli des données sont chargées de la base, l'utilisateur les manipule via des IHM et quand il le décide, il clique sur sauvegarder. Jusque là tout va bien...

    J'aurais besoin de connaitre les modifications effectuées par l'utilisateur sur ces données (modification de la valeur de tel attribut, ajout de tel objet dans une collection...). Je pensais qu'Hibernate serait capable de me donner ces infos car il exécute juste les insert/update qui vont bien lorsque je demande de sauvegarder mes objets donc lui sait ce qui a été modifié mais il ne veut pas me le dire .

    Connaissez-vous le moyen d'avoir accès aux modifications effectuées sur ces objets ? Ou alors je me trompe peut-être de direction et si vous avez une autre méthode, je suis preneur aussi !

    Merci d'avance !

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

    Informations forums :
    Inscription : Août 2006
    Messages : 3 276
    Par défaut
    Je ne comprends pas vraiment ce que tu veux faire ?
    Tu veux loguer les modifications de tes objets ?

  3. #3
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Je pense qu'il veut savoir si la valeur du champ "toto" à été modifiée ou celle du champ "titi" etc...
    On peut également supposer que si rien n'a été (physiquement) modifié, on ne fait pas la sauvegarde en DB

    Le moyen que je vois -> modifier les setter pour positionner une map des valeurs initiales (cas où l'entrée n'existe pas dans la Map) et utiliser une fonction pour tester si la valeur en cours est différente

    C'est lourd (beurk !)
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    BsT
    BsT est déconnecté
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 72
    Par défaut
    Tu peux utiliser un Intercepteur (org.hibernate.Interceptor).

    J'ai vu qu'il y avait aussi des events (org.hibernate.event) regarde DirtyCheckEventListener, mais comme j'utilise la version 2 d'hibernate je ne les connais pas trop.

    Edit : (pour OButterlin) peut etre qu'avec les property de java 7 on aura cela dans un hibernate 4

  5. #5
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par BsT Voir le message
    peut etre qu'avec les property de java 7 on aura cela dans un hibernate 4
    Dire qu'on parle déjà de la v7 et les serveurs d'application n'ont pas tous intégré la v6...

    A+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Candidat au Club
    Inscrit en
    Avril 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 3
    Par défaut
    Le but est de loguer les modifications, savoir si les données ont été modifiées pour proposer de les enregistrer à la fermeture du logiciel et aussi reporter ces modifications sur d'autre objets (c'est pas facile à expliquer comme ça...).

    Modifier les setters, j'aimerais trouver mieux parce que ça représente beaucoup trop de boulot et c'est franchement moche... ou alors en AOP mais bof.

    Je vais regarder les Intercepteurs et les events, je ne connais pas.

    Mais je me demandais quand même comment fait Hibernate pour savoir ce qui a été modifié ? J'ai regardé un peu les sources mais je me suis perdu sans rien trouver

Discussions similaires

  1. Etablir des modifs sur les permissions sur serveur FREE
    Par dessinateurttuyen dans le forum Outils
    Réponses: 5
    Dernier message: 02/04/2008, 16h46
  2. Réponses: 3
    Dernier message: 02/03/2008, 18h50

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