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 :

Garder mes modifications du lazy malgré un re-mapping


Sujet :

Hibernate Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juin 2002
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 44
    Points : 38
    Points
    38
    Par défaut Garder mes modifications du lazy malgré un re-mapping
    Bonjour,
    Voici mon problème :
    Je fait du mapping DB --> objects java, via les outils de Hibernate/Jboss, la propriété du lazy est à true par défaut, par contre je dois mettre celui-ci à false pour certaines entitées.
    Mais dés que je remap. la DB --> objects java, je perds toutes mes modifications du lazy ...
    Y a t'il un moyen de garder mes modifications ?

    Merci d'avance
    Kcintim

  2. #2
    Membre expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Points : 3 938
    Points
    3 938
    Par défaut
    Bonjour,

    Pas très bien cerné ton souci.Peux tu le repreciser en citant si possible un exemple?

  3. #3
    Nouveau membre du Club
    Inscrit en
    Juin 2002
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 44
    Points : 38
    Points
    38
    Par défaut
    Bonjour DevServlet,
    J'utilise Eclipse-Jboss-Hibernate.
    Lorsque que je fait du mapping de tables de ma DB vers des objets java 'entity', la valeur par défaut est du lazy-loading pour tous les objets mappés.
    Il y a possibilité de changer cela manuellement dans les fichiers générés.
    Mais lorsque je refais un mapping, car le schéma de ma DB a changé, toutes mes modifications sont écrasées.
    Ma question était donc si il y avait un moyen pour que mes modifications manuel que j'ai fait lors du premier mapping reste dans leurs états sans être supprimer par le nouveau mapping.
    Faut d'avoir trouvé le moyen de le faire, je modifie ce lazy-loading dans mes DAO.
    Merci

  4. #4
    Membre expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Points : 3 938
    Points
    3 938
    Par défaut
    Bonjour,

    Ce que tu appelles "faire un mapping" c'est générer tes entités avec Hibernate Tools en partant dela base c'est bien ça? ensuite tu modifies manuellement ces fichiers générés. Et par la suite quand le schéma de ta base a changé t'aimerais bien une régénération tout en conservant les modifications précédemment faites dans tes fichiers. Euh... Sauf erreur de ma part je ne pense pas que cela soit possible dans ce sens, du moins pas pour les versions d'Hibernate Tools que j'ai eues à utiliser.

  5. #5
    Expert éminent sénior
    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 : 45
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    Sans compter que vouloir faire ça en automatique à un autre moment qu'au début du projet, les lazy loading sont le cadet de tes soucis

    Imagine qu'une colonne change de nom, ou de type dans la DB (Et oui, ça arrive même sur des grosses DB), que fera-tu lors de la regénération? Aucun code appelant tes objets ne sera plus valide car ses méthodes auront changer.

    En général, les adaptations, on les fait à la main par la suite.

  6. #6
    Nouveau membre du Club
    Inscrit en
    Juin 2002
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 44
    Points : 38
    Points
    38
    Par défaut
    Bien analysé DevServlet c'est tout à fait ce que j'ai voulais dire, mais en plus claire

    Salut tchize_,
    Le problème c'est quand je suis dans ma couche logique, je suis en dehors de la session Hibernate et celui-ci ne peut donc pas générer son sql pour aller chercher les autres objets lier à mon objet reçu de mon DAO.
    Car la session est gérer aux niveaux des DAO.
    Je sais ... je sais ... il vaut mieux gérer les sessions par un service ou un filter, mais malheureusement je suis pas dans un projet architecturer de la sorte ...
    J'ai donc opté pour forcer le EAGER dans mes DAO quand j'en ai besoin dans ma couche logique métier ..
    Tks

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 21/09/2009, 03h51
  2. Garder mes IDE
    Par Louis-Guillaume Morand dans le forum Composants
    Réponses: 4
    Dernier message: 29/04/2008, 14h52
  3. Comment garder mes points d'arrets lorsque je quitte VB ?
    Par nico-pyright(c) dans le forum Vos contributions VB6
    Réponses: 2
    Dernier message: 18/10/2006, 09h17
  4. [Info]Eclipse ne prend pas en compte mes modifs...
    Par Baptiste Wicht dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 20/01/2006, 17h50

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