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] Outer-join


Sujet :

Hibernate Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Mars 2003
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 6
    Points : 6
    Points
    6
    Par défaut [Résolu][Hibernate] Outer-join
    Bonjour,

    Voici un fichier de mapping pour un PROJET. Mon probleme est que j'utilise outer-join quand je charge un PROJET, il me fait 3 requetes : 1 pour le PROJET, 1 pour le CLIENT et 1 pour la NORME, or je croyais qu'en utilisant outer-join il ne m'en ferais qu'une.

    Aurais-je mal utilisé ce concept ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <hibernate-mapping package="projet">
    	<class name="Projet" table="PROJET">
     
    		<many-to-one class="Client"
    			name="IdeCli"
    			not-null="true"
    			outer-join="true">
    			<column name="IDE_CLI" />
    		</many-to-one>
     
    		<many-to-one
    			class="Norme"
    			name="IdeNor"
    			not-null="true"
    			outer-join="true" >
    			<column name="IDE_NOR" />
    		</many-to-one>
     
    </hibernate-mapping>

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 274
    Points : 307
    Points
    307
    Par défaut
    Bonjour,

    non tu as bien compris le concept.

    n'as tu pas défini la variable hibernate.max_fetch_depth à 0 dans ton fichier de configuration ?

    Le moyen le plus sûr de réduire le nombre de requête est d'utiliser le mot cle "fetch"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     "from Projet p join fetch p.Client "

  3. #3
    Futur Membre du Club
    Inscrit en
    Mars 2003
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 6
    Points : 6
    Points
    6
    Par défaut
    Tout d'abord, merci de ta réponse.

    Ma variable hibernate.max_fetch_depth n'est pas positionnée à 0 mais à 3.

    Voilà mon code java avec lequel Hibernate me générait 2 requêtes au lieu d'une :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sessionHibernate.createQuery("SELECT DISTINCT p FROM Projet p")
    Je me suis rendu compte qu'en utilisant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sessionHibernate.load(Projet.class, new Integer(1))
    alors il ne me générait qu'une seule requête. Alors que sans le positionnement à 'true' de 'outer-join' il m'en générait 2.

  4. #4
    Membre averti
    Inscrit en
    Août 2005
    Messages
    352
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 352
    Points : 427
    Points
    427
    Par défaut
    Je ne pense pas dire de betises en affirmant que HQL n'utilise ni les propriétés définies (hibernate.max_fetch_depth...) ni les options du mapping, contrairement à l'API Criteria.
    Pour obtenir toutes les informations en une seule requete HQL, il va falloir, comme le disait Pietra, préciser les jointures.

    "from Projet p join fetch p.Client "

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 09/06/2010, 17h15
  2. fonctionnement du RIGHT OUTER JOIN hibernate
    Par Pinkwyzard dans le forum Hibernate
    Réponses: 0
    Dernier message: 26/05/2009, 13h20
  3. hibernate reconnai le left outer join?
    Par biba158 dans le forum Hibernate
    Réponses: 1
    Dernier message: 24/07/2007, 19h52
  4. probleme avec OUTER / OUTER JOIN
    Par Volcomix dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 21/04/2004, 17h57
  5. [ requeste sql ]INNER JOIN / OUTER JOIN
    Par hocinema dans le forum Langage SQL
    Réponses: 2
    Dernier message: 12/04/2004, 22h28

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