zamykani tabulek mysql+hibernate
Lukas Barton
lukas na cnawr.cz
Úterý Červen 16 16:25:42 CEST 2009
Jak presne Hibernate *zamyka *na MySQL najdes v danem dialectu.
Jsou tam na to metody.
Pricemz pesimisticke zamky (coz je i LockMode.UPGRADE) umi Hibernate jen
pokud ho umi databaze (Typicky pres select ... for update).
A vetsinou to zamkne jen jeden radek/stranku (zalezi na granuralite na dane
DB a dane situaci - eskalace zamku).
Zamknout celou tabulku je nutne pomoci SQL prikazu.
Optimisticke zamykani umi Hibernate na kazde DB a dela ho automaticky pri
kazdem updatu, vynutit je ho mozne pomoci LockMode.FORCE.
Vice viz
http://docs.jboss.org/hibernate/stable/core/reference/en/html/transactions-optimistic.html
Lukas
2009/6/16 Pavel Nemec <nemecp4 na gmail.com>
> Dobry den,
> mam docela specificky problem.
> 2 aplikacni servery (jboss) na kterych bezi hybernate a mysql. Mysql
> je nastavna tak ze se replikuje na obou serverech a tvari se tedy
> jako jedna databaze.
>
> S databazi komunikuji vyhradne pres Hibernate. Jsem v situaci, kdy oba
> servery budou ve stejny cas pracovat nad jednou tabulkou. Hledal jsem
> moznost jakym zpusobem zamknout celou tabulku, s kterou potrebuji
> pracovat. Nicmene vse co jsem nasel, je
> session.get(Object, Lock.UPGRADE).
> S tim ze je u navodu vetsinou poznamka, ze to funguje urcite na
> Oraclu. Jestli tomu dobre rozumim, tak hibernate resi konkurencni
> pristup zejmena pri vicenasobnem pristupu prave pres hibernate
> (optimisticky pristup s verzovanim). Vypada to ze pristup pres primo
> pres mysql resit neumi (pesimisticky pristup a zamikani db).
>
> Muze mne nekdo prosim spravne nasmerovat?
>
> Predem dekuji,
> Pavel
>
------------- dal?í ?ást ---------------
HTML p?íloha byla odstran?na...
URL: <http://amaio.cz/pipermail/konference/attachments/20090616/0a5a5032/attachment.htm>
Další informace o konferenci Konference