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

Persistance des données Java Discussion :

JPA JoinTable et N+1 requête


Sujet :

Persistance des données Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 21
    Points : 42
    Points
    42
    Par défaut JPA JoinTable et N+1 requête
    Bonjour à tous,

    J'ai une question à laquelle je n'ai pas réussi à trouver la réponse, alors peut-être que quelqu'un pourra m'aider !

    J'utilise JPA 2 avec hibernante, et j'ai réalisé le fameux mapping "JoinTable with additional column", à savoir une table d'association avec des champs additionnels.
    Le mapping fonctionne plutôt bien en lecture/ecriture/update, simplement, lors de la récupération des données, un nombre assez important de requête est exécute... (le fameux N+1)
    J'ai essayé de jouer avec les "fetch=EAGER" mais sans succès...

    Ma question est donc la suivante :

    Est-il possible de récupérer pour un Objet A toutes ces associations mais en y récupérant aussi les Objet B lié à la table d'association, et comment ?

    Le must : juste par annotation. Sinon je pense que c'est faisable en jPQL ? Sinon avec les criteria Query ?

    Merci à vous !

  2. #2
    Membre confirmé Avatar de NicoL__
    Homme Profil pro
    Architecte
    Inscrit en
    Janvier 2011
    Messages
    399
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Janvier 2011
    Messages : 399
    Points : 577
    Points
    577
    Par défaut
    Normalement eager permet de réaliser un jointure au lieu de faire du lazy et réaliser par la suite la requête.
    Il faut logger et voir quel est le sql généré par hibernate. Et de voir en suite quelles sont les objets qui sont chargés.
    En fait si l'objet est sérialisé, il y a des chances pour que le graph d'objets soient sérialisés. Dans une liaison N-N entre la table A et la table B même si A charge B en eager les propriété de B risque d'être charger en lazy (par de multiple requêtes) lors de la sérialisation.

Discussions similaires

  1. Requête JPA deux entités
    Par ff441 dans le forum JPA
    Réponses: 2
    Dernier message: 03/05/2011, 12h26
  2. requête JPA jointure
    Par damii1 dans le forum JPA
    Réponses: 1
    Dernier message: 16/01/2009, 17h44
  3. Réponses: 1
    Dernier message: 25/11/2008, 21h02
  4. [JPA]Faire cohabiter JPA avec des requêtes JDBC
    Par nicorama dans le forum JPA
    Réponses: 4
    Dernier message: 19/11/2008, 16h19
  5. correction d'une requête (jpa ql)
    Par chflb dans le forum JPA
    Réponses: 11
    Dernier message: 17/08/2008, 18h16

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