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 :

[Hibernate] Limitation de chargement de l'arboresecence


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Inscrit en
    Avril 2005
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 7
    Par défaut [Hibernate] Limitation de chargement de l'arboresecence
    Voilà ce que je souhaite faire:
    J'ai 4 classes Personne, Identification, Role, et une lien 1.1 entre Personne et identification, un lien 1,n entre identification et Role . J'ai parametré Hibernate en chargement non tardif avec des jointures externe pour charger le graphe en une seule requête. Maintenant je souhaite pouvoir dynamiquement modifier la profondeur du chargement c'est-à-dire de ne charger par exemple que Personne et Identification depuis le programme.
    Si vous avez des pistes de solutions je suis preneur.

    Merci d'avance

  2. #2
    ego
    ego est déconnecté
    Rédacteur

    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    1 883
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 883
    Billets dans le blog
    2
    Par défaut
    il faut passer par le lazy-loading et les left outer-join mais tu ne pourras pas définir une profondeur de plus de 1
    Par exemple Hibernate ne peut pas récupérer un graphe complet (fermeture transitive complète).
    Soit tu charge tout soit tu fais du lazy-loading et tu as quand même la possibilité du left outer-join pour récupérer en une seule requête des objets associés

  3. #3
    Membre régulier
    Inscrit en
    Avril 2005
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 7
    Par défaut
    Oui c'est une solution que j'avais employé mais elle a des limites.
    Par contre j'ai trouvé une autre solution. Avec hibernate version 3, on a le mode FetchMode et il suffit de positionner ce mode à JOIN (fetch="join") dans la collection du fichier XML de mapping pour avoir le chargement par jointure externe. L'intérêt c'est qu'on modifié ce mode par programmation et le passer en mode SELECT qui supprime le chargement par jointure externe et ainsi limite dynamiquement le chargement du graphe. C'est expliqué dans le chapitre 20 (Improving performance) de la documentation officielle hibernate 3.0.5

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

Discussions similaires

  1. limite de chargement 10000 résultat d'un LINQ
    Par sami4600 dans le forum Silverlight
    Réponses: 4
    Dernier message: 12/08/2011, 10h18
  2. limite de chargement d'un fichier XML?
    Par f-mory dans le forum Développement de jobs
    Réponses: 6
    Dernier message: 22/10/2009, 17h35
  3. [Hibernate] Chargement d'un objet avec XX sous niveau ?
    Par Hikage dans le forum Hibernate
    Réponses: 2
    Dernier message: 27/07/2006, 17h14
  4. [ Hibernate ] Utilisation de limit possible ?
    Par cicolas dans le forum Hibernate
    Réponses: 2
    Dernier message: 13/06/2006, 10h29
  5. [HIBERNATE] Chargement d'objet incorrect
    Par faya972 dans le forum Hibernate
    Réponses: 4
    Dernier message: 19/04/2006, 23h01

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