web-dev-qa-db-fra.com

Que fait Hibernate.initialize?

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)
13
Mykhaylo Adamovych

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

5
Alan Hay

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. 

1
Zeus

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/

0
Anano

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.

0
user2770401