Dobry den, pridam take svoji trosku do mlyna... :-)
Tema OpenSessionInView jsme s kolegy rovnez resili. Nejdriv se nam to zdalo jako idealni reseni, ktere znacne zjednodusuje praci tvurcum aplikace. Reference se dotahuji samy od sebe - pohoda. Posleze jsme ale dosli k zaveru, ze Hibernate sice zdanlive cloveku usnadnuje zivot, avsak na druhe strane prinasi sve problemy. Clovek najednou ztraci kontrolu nad tim, co se s databazi deje... Pres nektere nesporne klady Hibernate zaciname uvazovat o necem jednodussim na zpusob iBatis. mp. -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Jan Moravec Sent: Tuesday, June 12, 2007 11:02 AM To: 'Java' Subject: RE: Hibernate aneb jak se (ne)vyhnout DTO Zdravim, Tu inicializaci asociaci pred commitem jsem taky delal, ale clovek i presto, na muj vkus prilis casto, resi LazyInitializationException diky tomu, ze se metoda vola z ruznych kontextu, kde jsou potreba ruzna data (takze tokonci tak, ze clovek pridava dalsi a dalsi session.initialize()). Neprijemny side-efekt je pak i to, ze se nekde dotahuji data, ktera by se v danem kontextu dotahovat vubec nemusela. Tohle mi prijde neuhlidatelne, proto jsem (doufam ze jen) docasne zvolil cestu DTO a to i za cenu zvysene pracnosti. Myslenka s dvema transakcema per session me pred casem taky napadla, nebo jsem to mozna nekde cetl. Akorat me dost desi, ze db spojeni zustane alokovano po celou dobu renderovani view, coz je vec, kterou ovlivni i rychlost spojeni klienta (pokud mi 100 lidi posle request na aplikaci a nebudou pak cist response, nebo jen velmi pomalu a dojde na strane serveru z zaplneni bufferu, budu mit v aplikaci razem blokovano 100 spojeni). Tuto vlastnost ma samozrejme i to reseni se dvema session. Z meho pohledu idealni reseni by byl nejaky interceptor na LazyInitializationException, ktery by dostal referenci na problematicky objekt, otevrel by session, dotahl by co potrebuje, session zase rychle zavrel a uvolnil tim alokovane db spojeni. Ale toto se obavam neni Hibernate podporovano, ale zase nejsem takovy Hibernate guru. Kazdopadne tuto moznost aktualne zkoumam. Honza
