Pouzivam Hibernate a puvodne jsem si (naivne) myslel, ze zivot bude sladky, ze Hibernate domenove objekty budu vracet do view a to mi z nich bude cist a zbavim se nutnosti psat DTO tridy. To jsem si myslel do doby, nez jsem poprve uvidel vyjimky s hlaskou "Session is closed". Duvod vyjimky je zcela pochopitelny, protoze Hibernate session (dale jen HS) mi managuje JTA, takze ve view je session jiz uzavrena a kdyz se view pokousi dotahnout nejakou lazy asociaci, vyhodi zminovanou vyjimku.

Je otazkou jestli je dobre vracet do view model, ktery si muze bokem fetchnout dalsi data... Ale to je otazka, kterou si musi vyhodnotit autor aplikace.

1) lazy alokovana session, ktere je striktne read-only a je managovana ve view
2) standardni "vykona" session managovana pres JTA

Pak je potreba jen nejak automaticky zajistit (napr. pres nejaky JTA 
interceptor), ze domenove objekty Hibernate predavane do view se sami asociuji 
s tou read-only session a bude tedy mozne se vyhnout DTO patternu pro praci s 
domenovymi daty a pomoci te read-only session dotahovat i lazy asociace dle 
potreb view.

To je zajimavy napad hodny dalsiho rozpracovani ;-). Slo by to udelat pres aspect, ktery by pro dane objekty delal napojeni a odpojeni na tu read only session.

--
S pozdravem Roman "Dagi" Pichlik

/* http://www.sweb.cz/pichlik/ Blog pro kodery */

Odpovedet emailem