Que fait Hibernate.initialize?
Habituellement référé documentation ne parler que de
Hibernate.initialize(entity.lazyCollection)
Y a-t-il un sens dans
Hibernate.initialize(entity)
Je dirais oui si l'entité a un champ initialisé paresseux, par exemple. certaines données BLOB ou CLOB volumineuses ou une association un-à-un paresseux. Voir 20.1.8. dans la documentation pour le premier et 20.1.3 pour le dernier.
Voir également:
20.1.4. Initialisation des collections et des proxies
Je suis d'accord avec Alan Hay, voici mon expérience. J'ai rencontré ce problème lors de l'exécution des tests JUNit. Certains objets paresseux ne se chargeaient pas lors du chargement des objets dans une autre session. J'ai dû appeler Hibernate.initialize (Object) pour charger les objets paresseux dans la mémoire.
Brièvement, Hibernate.initialize () crée une autre requête pour extraire un objet dans un contexte de persistance. Lorsque l'objet est chargé avec impatience, JPA effectue une seule requête pour extraire un objet. Donc, une autre différence est le nombre d'appels au serveur
De plus: 1. Si object est null, Hibernate.initialize () lève une exception 2. Bonne source pour savoir comment initialiser des associations différées http: //www. Thoughts-on-Java. org/5 façons d'initialiser-lazy-relations-et-quand-les-utiliser-les/
Hibernate dans certains cas renvoie un objet proxy tel que lazy collection ou Session.load (), etc. Ainsi, si vous avez un objet proxy et que vous voulez le véritable, vous pouvez l'initialiser manuellement.