Force désireux de chargement des paresseux chargé propriétés
J'ai une Hibernate objet dont les propriétés sont tous chargés paresseux. La plupart de ces propriétés sont d'autres objets Hibernate ou PersistentSets.
Maintenant, je veux de la force Hibernate avides de charger ces propriétés pour juste un temps.
Bien sûr, j'ai pu "toucher" chacune de ces propriétés avec object.getSite().size()
mais peut-être il ya une autre façon d'atteindre mon objectif.
Vous devez vous connecter pour publier un commentaire.
La documentation il met comme ceci:
Références
C'est une vieille question, mais je voulais aussi souligner la méthode statique
Hibernate.initialize
.Exemple d'utilisation:
Les enfants sont maintenant initialisé pour être utilisé même après la fermeture de la session.
Dozer fonctionne bien pour ce genre de chose - vous pouvez demander à des Bulldozers à la carte de l'objet à une autre instance de la même classe, et Bulldozer permettra de visiter tous les objets accessibles à partir de l'objet courant.
Voir cette réponse à une question similaire et ma réponse à une autre question relative à la pour plus de détails.
Pour moi cela fonctionne:
Plutôt que de ceci:
3 façons
1.HQL avec left join enfants
2.La méthode SetFetchMode après createCriteria
3.Mise en veille prolongée.initialiser
C'est lent, car il fait un aller-retour pour chaque élément, il doit initialiser, mais il fait le travail.
Selon la hibernate docs, vous devriez être en mesure de désactiver paresseux propriété de chargement par le réglage de la
lazy
l'attribut de votre propriété en particulier de mappages: