je par exemple, un DB avec l'entité suivante et la structure relation:Mise en veille prolongée - Limiter les collections de chargement désireux d'une table profonde
[personne] a beaucoup [compétences], [compétences] a beaucoup [Actions]
Dans les fichiers .hbm.xml, j'assigne des relations un-à-plusieurs pour la personne> compétences, compétences> actions.
Dans une requête, je voudrais être en mesure de contrôler quand je interroge sur la personne, pour charger impatiemment que les compétences. Actuellement, je semble être coincé là où je suis impatient de charger RIEN, et générer un nombre n + 1 de requêtes pour obtenir les compétences d'une personne, ou générer un nombre de requêtes (n * n + 1) car il charge avec impatience l'ensemble Personne> Compétences> Hiérarchie de collection d'actions.
Comment est-ce que je le limiterais de telle sorte que je peux contrôler quand je fais et ne veux pas charger la troisième table de profondeur? Pour le contexte, je serais capable de toujours avoir la collection Person> Skills initialisée, idéalement en tant que JOIN pour éviter les goulots d'étranglement de performance n + 1.
Est-ce que vous ne pouvez pas simplement mettre des actions à charge paresseuse sur le mappage des compétences? L'appel à skills.getActions() obligera Hib à les récupérer quand vous en aurez besoin. Ou ai-je mal compris votre problème? – bvulaj