Roman Pichlik napsal(a):
1) Je vyhodnejsi po celou dobu behu aplikace nechat otevrenou jednu
session

2) Nebo je vyhodnejsi pro kazdou logickou posloupnost operaci otevrit
novou session a po ukonceni session zavrit?

2 protoze

- kratka doba alokace databazoveho pripojeni
- moznost mit oddelene (nezavisle) operace s ruznou Flush strategii
- mensi pametove naroky (session nemusi drzet zbytecne mnozstvi referenci)

Prvni bod z vyse uvedeneho zcela neplati.
Session lze odpojit a tim uvolnit databazove pripojeni.

Dalsi argumenty pro 2:
- flush (commit) na session, ktera obsahuje mnoho objektu trva neskutecne dlouho - misto mikrosekund i nekolik desitek sekund - flush (commit) se vzdy tyka vsech objektu v session - tam kdebyste nechtel ulozit zmeny musite dusledne evictovat (odebirat objekty ze session)

Nevyhoda 2 je:
- moc nevyuzijete lazy inicializaci, protoze nemuze pouzit navrhovy vzor open session in view - nevite kdy vam view na jakou propertu z modelu sahne

Ja osobne mam dobrou zkusenost s (2) (dobry je to kombinovat i se Springem) a pouzivanim DTO (VO) pripadne pouzitim primo mapovanych objektu, ktere jsou v DOA vrstve kompletne inicializovani resp. nemaji zadne lazy property/vazby.

 Lukas




Odpovedet emailem