Vaclav Pech wrote:

Děkuji za Vaše doporučení i za uvedený odkaz.
Ohledně diskutovaného problému s kolekcemi, mám dojem, že jsme si částečně nerozumněli. Možná jsem to špatně vyjádřil, ale rozhodně nedoporučuji inicializovat lazy property objektů v kolekci pomocí new ArrayList(). Na toto by opravdu měly sloužit fetch strategie. Pouze jsem navrhoval proiterovat výsledný list vrácený z query, což lze zajistit například i jeho obalením v nové kolekci, třeba ArrayListu. Bez fetch join se samozřejmě daná query neobejde. A při takovém použití mě žádný problém spojený s neočekávaným označením celé kolekce za "dirty" nenapadá. Opravte mě prosím, pokud se pletu.

Pokud samozrejme mate session jen pro cteni (FlushMode.NEVER), tak je jedno jakym zpusobem docilite inicializace objektu v kolekci.

Proiterovani listu nebude zrejme efektivni.
Zkuste to a uvidite.
- vysledkem iterovani podle mne ani nebude inicializace celeho pole (pokud teda nemate vlastni metodu hashCode nebo equals, ktera pouzije nejakou property mimo primary key) a pri volani Hibernate.initialize() na kazdy objekt pak i N dotazu do databaze (nezkousel jsem to a dokumentace o tom mlci, jen doporucuje pouzit - vysledkem volani Hibernate.initialize() na celou kolekci bude dotaz jeden....

  Lukas


Vašek


__________ Informace od NOD32 1.1771 (20060923) __________

Tato zprava byla proverena antivirovym systemem NOD32.
http://www.nod32.cz



__________ Informace od NOD32 1.1771 (20060923) __________

Tato zprava byla proverena antivirovym systemem NOD32.
http://www.nod32.cz




Odpovedet emailem