Dobry den,

Nicmene kdyby to fungovalo jak je psano v manualu, tak by na jednu adresu bylo 
zavolano update pouze jednou. Jenze je to zavolano okamzite po nacteni a pak 
pred Flushnutim.

Ano pred updatem je zavolana metoda equals, ktera porovna starou a novou 
adresu a vrati "true" a okamzite nato nasleduje update, ktery ulozi dany 
objekt.

Rozhrani UserType primo metodu isDirty nespecifikuje, pouze tam je metoda 
equals a je jedno jestli tato metoda vrati true, nebo false, stejne je 
proveden update.

Tedy presny postup je takovyto:
1) Nacte se pobocka
2) Nactou se informace o userTypu a vytvori se
3) Zavola se deepCopy (vytvotim novy objekt se stejnyma hodnotama, nebo vratim 
stary, to je fuk).
4) Zavola se porovnani (vrati se true, nebo false, to je taky fuk)
5) Zavola se deepCopy stejne jako v 3)
6) Provede se "update branch set dateOfChange=?, phoneNumber=?, mobilNumber=?, 
faxNumber=?, email=?, web=? where id=? and dateOfChange=?"
7) Opet je provedeno deepCopy jako v bodu 3)
8) Nacitaji se dalsi pobocky od bodu 1)
9) Na vsechny nactene Adresy se provede deepCopy jako v 3)
10) Na vsechny Adresy se provede porovnani jako v 4)
11) Vsechny adresy jsou opet updatovany jako v 6)

Trochu nechapu co muze dostat dany objekt do dirty stavu, ani kde je ho mozne 
nastavit.

> >  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.
>
> to rozhodne neplati, Hibernate tam samozrejme dirty checking ma.
> Problem bude zrejme s temi kompozitnimi typy... Zkuste si oddebugovat,
> co presne zpusobi, to ze je objekt oznaceny jako dirty.
-- 
Lukas Benda

Attachment: signature.asc
Description: This is a digitally signed message part.

Odpovedet emailem