These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 6 posts ] 
Author Message
 Post subject: Many-to-one et chargement
PostPosted: Fri Nov 02, 2007 9:39 am 
Newbie

Joined: Fri Nov 02, 2007 6:17 am
Posts: 3
Bonjour tout le monde,

Voici mon problème. J'ai une application qui doit souvent charger un très grand nombre d'objets avec toujours les mêmes informations chargées pour tout ces objets. Je me suis donc tourné vers du lazy-loading (je ne dois pas toujours charger les objets complètement) et une stratégie de chargement par sub-select (et ainsi éviter le problème des n+1 selects). Malheureusement dans le cas de mes relations many-to-one la stratégie par sub-select ne peut pas être appliquée et je me retrouve avec un très grand nombre de selects.
La solution idéal serait de pouvoir charger la table derrière cette relation many-to-one en un seul select dès qu'un de ses objets est accédé (à la façon des sub-selects).

J'ai déjà essayé d'inclure un fetch="join" dans ma relation, ce qui résout le problème (plus qu'un seul select) mais cela en rajoute également un. Même quand les informations de ma relation ne doivent pas être chargées, hibernate effectue un Left outer join sur ma relation ce qui ralenti inutilement mes requêtes.

En résumé, il y a-t-il donc une solution pour simuler une stratégie par sub-select sur des relations many-to-one et donc charger ma table en un seul select dès qu'on tente d'y accéder.

J'espère avoir été assez clair ;)

Meilleures salutations et merci d'avance,

Greg


Top
 Profile  
 
 Post subject:
PostPosted: Thu Dec 13, 2007 9:34 am 
Newbie

Joined: Wed Feb 01, 2006 10:16 am
Posts: 13
J'ai le même problème si quelqu'un a une solution.


Top
 Profile  
 
 Post subject:
PostPosted: Mon Jan 21, 2008 12:54 pm 
Newbie

Joined: Fri Nov 02, 2007 6:17 am
Posts: 3
pioug wrote:
J'ai le même problème si quelqu'un a une solution.


As-tu finalement trouvé une solution? ou une astuce pour contourner le problème?

Merci d'avance


Top
 Profile  
 
 Post subject:
PostPosted: Mon Jan 21, 2008 2:29 pm 
Newbie

Joined: Wed Feb 01, 2006 10:16 am
Posts: 13
j'ai essayé de trouver une solution mais je n'ai rien pour l'instant. A priori c'est un problème qui n'est pas rencontré par d'autres personnes pourtant l'utilisation de subselect sur ce type de liaison pourrait permettre d'optimiser les traitements.


Top
 Profile  
 
 Post subject:
PostPosted: Tue Jan 22, 2008 3:51 am 
Newbie

Joined: Fri Nov 02, 2007 6:17 am
Posts: 3
Pour le moment, j'ai contourné le problème par un chargement par lot (Je set simplement la batch-size dans la config). Dans mon cas, cela donne des performances convenable, les relations many-to-one sont chargées par lot et les autres toujours par subselect.


Top
 Profile  
 
 Post subject:
PostPosted: Tue Jan 22, 2008 4:19 am 
Newbie

Joined: Wed Feb 01, 2006 10:16 am
Posts: 13
Effectivement cela permet d'optimiser les perfs, mais il y a toujours n* requêtes.


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 6 posts ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.