[ cwele @ 18.01.2007. 13:08 ] @
Znaci, nije direktno vezano za JSF, ali evo:
za pristup bazi kroistim pure JDBC (ne bas sasvim, tacnije neke pomocne klase iz Spring-a, ali svodi se na isto).
- uzmem slog iz baze i saljem ga ka bowseru na editovanje.
- pre upisa izmena, treba da proverim da li je neko u medjuvremenu vec napravio izmenu u tom slogu, i ako jeste, da nekako obavestim korisnika da je slog u medjuvermenu editovan.

Sta da koristim ? na pamet mi je palo da napravim jos jednu kopiju sloga onakvog kakav je pre editovanja, a onda pre upisa izmena da proverim da li je tekuca vrednost sloga u bazi ista kao i ta kopija. Ako nije, znaci da je neko izmenio slog.
Ali ne znam koliko je to ok, postoji li nesto elegantnije, neki alat koji to nekako automatski omogucuje ? Hibernate mozda, ali na njega mi se ne prelazi :-(
[ anon315 @ 18.01.2007. 13:44 ] @
JPA
[ cwele @ 18.01.2007. 14:25 ] @
- postoji li neka free implementacija za JDK < 5 ?
[ kaizen @ 18.01.2007. 14:52 ] @
Citat:
cwele: Znaci, nije direktno vezano za JSF, ali evo:
za pristup bazi kroistim pure JDBC (ne bas sasvim, tacnije neke pomocne klase iz Spring-a, ali svodi se na isto).
- uzmem slog iz baze i saljem ga ka bowseru na editovanje.
- pre upisa izmena, treba da proverim da li je neko u medjuvremenu vec napravio izmenu u tom slogu, i ako jeste, da nekako obavestim korisnika da je slog u medjuvermenu editovan.

Sta da koristim ? na pamet mi je palo da napravim jos jednu kopiju sloga onakvog kakav je pre editovanja, a onda pre upisa izmena da proverim da li je tekuca vrednost sloga u bazi ista kao i ta kopija. Ako nije, znaci da je neko izmenio slog.
Ali ne znam koliko je to ok, postoji li nesto elegantnije, neki alat koji to nekako automatski omogucuje ? Hibernate mozda, ali na njega mi se ne prelazi :-(


Pogledaj: http://www.javasvet.net/forumTopicView.do?tid=571

btw: loš ti je naziv teme
[ cwele @ 18.01.2007. 15:19 ] @
- pogledao sam JPA na kratko, bez sumnje mocan, ali i komplikovan API, ali opet gomila xml descriptora, mapiranja ...

Nema nesto prostije, mozda nesto sa CachedRowSet, tamo cini mi se ima neki SyncResolver koji se moze postaviti i resava upravo ono sto mi treba ?

Jos neka ideja ?
[ cwele @ 18.01.2007. 15:22 ] @
Citat:
btw: loš ti je naziv teme


- hvala na odgovoru, i da znas da mi je ova sugestija najvise pomogla ...
[ kaizen @ 18.01.2007. 15:32 ] @
Citat:
cwele: - hvala na odgovoru, i da znas da mi je ova sugestija najvise pomogla ...


ironično?

btw to je konstatacija a ne sugestija (kao i ovo ovde:))
[ ph4t @ 18.01.2007. 20:57 ] @
kaizen ti je dao dobar link. Jednostavno je za implementirati i trebati samo 1 update statement. U hibernate-u rade isto
[ cwele @ 19.01.2007. 08:50 ] @
Citat:
ph4t: kaizen ti je dao dobar link. Jednostavno je za implementirati i trebati samo 1 update statement. U hibernate-u rade isto


- dakle, resenje je sasvim u redu, prosto i efikasno.Ipak, to podrazumeva u svakoj tabeli jos jednu dodatnu kolonu koja se tice verzije.

Da li to znaci da se takva kolona mora dodati i kada se koristi Hibernate ? Cistom pitam, mada nemam nameru da prelazim na Hiberante; ili to hibernate nekako interno resava/vodi racuna o tome ?
[ Milos Babic @ 20.01.2007. 14:46 ] @
Da, Hibernate to radi automatski, ukoliko u hbm fajlu eksplicitno navedes
da je to polje "version" polje.

Mislim, da ako vec imas potrebe za long-last transakcijama, to mozes da uradis
uvodjenjem jedne timestamp kolone nad svakom tabelom, koja bi se azurirala
on-update trigerom, cisto da izbegnes koliziju ako nesto "ispod haube" cacnes.

Prema tome, svaki tvoj update ce dobiti jos jedan "rep"
Code:

and version=?

gde ? menjas verzijom koju imas.


pozdrav
Milos
[ ph4t @ 20.01.2007. 19:46 ] @
Citat:
cwele:
Da li to znaci da se takva kolona mora dodati i kada se koristi Hibernate ? Cistom pitam, mada nemam nameru da prelazim na Hiberante; ili to hibernate nekako interno resava/vodi racuna o tome ?


Da, pod hibernate isto moras dodati version kolonu.