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 :

Chargement via Hibernate


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 5
    Par défaut Chargement via Hibernate
    Bonjour,

    Je suis un débutant en Hibernate et j'aurais concernant le chargement d'objets.

    Voici une description simplifiée de la base de données sur laquelle je me base :

    LIVRE (clé primaire : id_livre) : id_livre, titre_livre
    TYPE_LIVRE clés primaires : id_livre et type) : id_livre (clé étrangère), type

    Donc concrètement, on stocke les types (multiples) de livres.

    Via Hibernate Synchroniser, j'ai créé le fichier de connexion à la base ainsi que les fichiers de mapping pour les deux entités LIVRE et TYPE_LIVRE. Les classes ont été générées et tout se passe bien.

    Seulement, lorsque j'essaie de récupérer les informations du livre 5 par exemple (session.load(Livre.class, new Integer(5)), j'ai l'impression qu'il charge "tout l'arborescence" de mon livre, donc pas seulement son titre, mais également la liste de ses types...

    Existe-t-il un moyen de ne pas lancer le chargement 'en profondeur', de manière à ne charger que les données d'une table précise ? Pour reprendre l'exemple précédent, j'aimerais pouvoir charger le contenu de la table LIVRE pour l'identifiant 5, sans avoir à charger ses types.

    En vous remerciant d'avance pour vos réponses,

    Arnaud

  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
    ca s'appelle le lazyloading (chargement à la demande). Il suffit de l'activer dans ton fichier de mapping, sur la relation livre -> types, pour que hibernate ne charge cette liste que lorsque tu tentera d'y accéder.

    Si tu n'active pas le lazyloading, hibernate va effectivement charger toute l'arborescence, avec le risque de charger recursivement toute la base de données en mémoire

Discussions similaires

  1. Ajout des données à BD via Hibernate
    Par mamadou_76 dans le forum Hibernate
    Réponses: 2
    Dernier message: 22/05/2007, 08h48
  2. [Hibernate]Accès aux données BDD via Hibernate
    Par LESOLEIL dans le forum Hibernate
    Réponses: 8
    Dernier message: 17/05/2005, 20h39
  3. Insertion of an object via Hibernate
    Par ksouissi dans le forum Hibernate
    Réponses: 4
    Dernier message: 17/05/2005, 09h15
  4. Accès à un fichier xml via hibernate
    Par boisdin dans le forum Hibernate
    Réponses: 12
    Dernier message: 20/01/2005, 14h54

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