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