Vaclav Pech wrote:

Ahoj,

souhlasím, že Hibernate.initialize() je dosti nebezpečné, pokud je result 
rozsáhlý. Nahraje totiž do paměti všechno, na co dosáhne, aby se mohla ukončit 
session a data se mohla předat třeba do webové vrstvy.
To nedela, pouze incializuje pozadovany objekt. Tedy kolekci (ne vsak objekty v kolekci) nebo jednotlivy objekt. Nikdy ne cely graf. (viz dokumentace Note: This only ensures intialization of a proxy object or collection; it is not guaranteed that the elements INSIDE the collection will be initialized/materialized.).

Pozor na to, ze od verze 3 jsou defaultne lazy i trdy, nejen kolekce.

V řešeném případě ale možná nejde o chybu v "lazy property", jak uvádíte, ale o 
neinicializované objekty přímo v seznamu result. Alespoň to jsem předpokládal. Proto 
navrhuji Hibernate.initialize().

Vašek



Odpovedet emailem