Que fait Hibernate.initialize?
Ce n'mise en veille prolongée.initialiser?
Généralement appelé la documentation ne parler que de
Hibernate.initialize(entity.lazyCollection)
Est-il un sens dans
Hibernate.initialize(entity)
source d'informationauteur Mykhaylo Adamovych | 2013-10-29
Vous devez vous connecter pour publier un commentaire.
Je dirais que oui, si l'Entité a un initialisées champ par exemple, certaines grandes BLOB ou CLOB de données ou d'un paresseux à une association. Voir 20.1.8. dans la documentation de l'ancien et 20.1.3 pour le second.
Voir aussi:
20.1.4. L'initialisation des collections et des procurations
Je suis d'accord avec Alan Foin, voici mon expérience, j'ai eu ce problème lors de l'exécution des tests JUNit, certains des paresseux objets n'ont pas de chargement lorsque vous essayez de charger des objets dans une autre session. J'ai dû appeler la mise en veille prolongée.initialiser(Objet) pour charger le paresseux objets dans la mémoire.
Mise en veille prolongée dans certains cas, les retours proxy de l'objet, comme les paresseux de la collection ou de la Session.load (), etc. Donc si vous avez des proxy de l'objet et que vous souhaitez le vrai vous pouvez initialiser manuellement.
Peu Mise En Veille Prolongée.initialize() crée une autre requête pour récupérer l'objet dans le contexte de persistance. Lorsque l'objet est chargé avec impatience JPA ne fait qu'une seule requête pour récupérer l'objet. Une autre différence est le nombre d'appels au serveur
En outre :
1. Si l'objet est null mise en veille prolongée.initialize() throws exception
2. Bonne source pour savoir comment initialiser paresseux associations http://www.thoughts-on-java.org/5-ways-to-initialize-lazy-relations-and-when-to-use-them/