> Nevim jestli vyjimani ze session v mem pripade nebude slozitejsi nez manualni > flushing. Otazkou pak zustava jestli je mozne uzavrti session bez flushnuti.
to nebude zrovna moc validni. Session kazdopadne umoznuje nastavit pro danou instnaci entity http://www.hibernate.org/hib_docs/v3/api/org/hibernate/Session.html#setReadOnly(java.lang.Object,%20boolean) > Btw. ma teda vubec nejaky smysl metoda save()? Kdyz se stejne vzdycky > proveden > nad vsema obektama v session? save ma smysl, protoze slouzi k tomu, aby Hibernate pochopil, ze nejak instance prechazi z transient do persistence stavu. Update nema vyznam pokud je instance asociaovana s persistetnim kontextem (Session) prave diky dirty checkingu, ktery zajisti update. Je to hodne matouci pro vyvojare zacinajici s Hibernatem, potom je kod zbytecne prospikovan volanim updatu. > Jak to pak provedu, kdyz tisice obektu pres jednu session nactu a jeden chci > zmenit a ulozt? Kdyz dam save(), pak musim stejne zavolat flush(). Takze mam > moznost zaslat tisice updatu, nebo tisice objektu vybrat ze session. To mi > prijde jako pomerne hodne nemotorne. flush se musi volat kazdopadne jinak se ty DML prikazy vubec neprovedou. Jakym zpusobem s temi objekty pracujete? Pokud je dana instance jiz persistentni a jenom odpojena od persistentniho kontextu tak staci zavolat merge http://www.hibernate.org/hib_docs/v3/api/org/hibernate/Session.html#merge(java.lang.Object). > > > > Hibernate defaultne vsechny objekty uklada pri flushnuti session, protoze > > vyvojari nejspise usoudili (?), ze je rychlejsi objekt zapsat, nez slozite > > kontrolovat, zda se v nem neco zmenilo. > > > > Mate v podstate 2 moznosti: > > > > a) pouzivat dynamicke updaty (atribut dynamic-update="true" u tridy v > > mapovacim XML, pripadne nejaka anotace - dle toho co pouzivate) > > > > b) rucne vyjimat (evict) dane objekty ze session > > > > H. > > > > > -----Puvodni zprava----- > > > Od: [EMAIL PROTECTED] > > > [mailto:[EMAIL PROTECTED] za uzivatele Lukas Benda > > > Odeslano: Monday, May 12, 2008 13:09 > > > Komu: Java > > > Predmet: Hibenrate optimisticke zamykani > > > > > > > > > Dobry den, > > > > > > chci zacit pouzivat optimisticke zamykani s Hibernate. > > > Konkretne se mi jevi > > > jako zajimavejsi timestamp metoda, nicmene jestil dobre chapu > > > optimisticke > > > zamykani, tak ke zmene casove znamky ma dojit v pripade ze v > > > zaznamu doslo ke > > > zmene. Bohuzel hibernate nastavuje casovou znamku pokazde, > > > kdyz je zaznam > > > nacten. > > > > > > Kyz treba nactu padesat zaznamu okamzite se padesatkrat > > > provede update ... navic pouzivam slozeny datovy typ Adresa, > > > ktery se zapisuje do stejne tabulky > > > do nekolika sloupcu, ale nacteny je jako jediny objekt a i na > > > tento typ se > > > pokazde zavola update. > > > > > > Takze mam tabulku ve ktere jsou dve adresy. Pri nacteni 1 > > > zanzamu se provede > > > trikrate update toho stejneho radku a nastavi se mu cas nacteni. > > > > > > Tohle chovani mi prijde uplne nesmyslne, nevite co jej muze > > > zpusobovat? > > > -- > > > Lukas Benda > > > > -- > Lukas Benda > -- S pozdravem Roman "Dagi" Pichlik /* http://www.sweb.cz/pichlik/ Blog pro kodery */
