|
|
|
Блокировки MySql в Hibirnate
|
|||
|---|---|---|---|
|
#18+
Коллеги, Хочется поставить блокировку на строчку в таблице(InnoDB) средствами Hibirnate, так чтобы никто даже не мог прочитать эту строчку. Возможно ли это сделать или я чего то не понимаю? Как делаю я, метода из DAO: Код: java 1. 2. 3. 4. 5. 6. 7. } Lock на строку ставится, т.е. писать в эту строку в новой сессии ничего не могу. Но не понятно, почему я все же могу читать эту строчку (открываю не зависимую сессию к базе и спокойно выполняю "SELECT * FROM `CONTENT` WHERE `id` = 600000") PS. Дело в том, что я всю жизнь думал, что нельзя поставить такую блокировку на строку, чтобы даже читать нельзя было, но тут попалась статья про блокировки и у меня сложилось впечатление, что любой write lock в mysql "закрывает" даже чтение строки пока lock не будет снят. Поясните пожалуйста, правильно ли я понимаю, что любой write lock закрывает строку/таблицу от чтения, и если я правильно понимаю что почему у меня не получается закрыть строку от чтения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2012, 02:22:10 |
|
||
|
Блокировки MySql в Hibirnate
|
|||
|---|---|---|---|
|
#18+
tepkaДело в том, что я всю жизнь думал, что нельзя поставить такую блокировку на строку и правильно думал. Где статья? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2012, 09:43:13 |
|
||
|
Блокировки MySql в Hibirnate
|
|||
|---|---|---|---|
|
#18+
Блокировка PESSIMISTIC_WRITE будет если другой процесс выполнит SELECT FOR UPDATE, на простой селект это не действует. Алсо не знаю, есть ли такой функционал в MySQL ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2012, 12:59:28 |
|
||
|
Блокировки MySql в Hibirnate
|
|||
|---|---|---|---|
|
#18+
Petro123tepkaДело в том, что я всю жизнь думал, что нельзя поставить такую блокировку на строку и правильно думал. Где статья? Например вот http://habrahabr.ru/post/46542/ "Если А хочет записать данные, то другие клиенты не должны ни читать ни писать эти данные пока А не закончит(write lock)." ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2012, 13:19:37 |
|
||
|
Блокировки MySql в Hibirnate
|
|||
|---|---|---|---|
|
#18+
tepkaНапример вот http://habrahabr.ru/post/46542/ "Если А хочет записать данные, то другие клиенты не должны ни читать ни писать эти данные пока А не закончит(write lock)." Это блокировки разных уровней. Они друг с другом почти никак не связаны. Те что описаны в статье нужны RDBMS для реализаций траназакционности и ACID. Т.е. это механизм работы самой БД. Пользовтель этими блокировками напрямую не манипулирует. Только в сложных ситуациях тонкой оптимизации. И то не всегда это возможно. А то что делает Hibernate это блокировки прикладного уровня, которыми может управлять пользователь для реализации необходимой ему логики. В качестве теории можете почитать, чем, например, "версионники" отличаются от "блокировочников". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2012, 13:26:37 |
|
||
|
|

start [/forum/topic.php?fid=59&tid=2130946]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
50ms |
get topic data: |
18ms |
get forum data: |
4ms |
get page messages: |
65ms |
get tp. blocked users: |
2ms |
| others: | 278ms |
| total: | 452ms |

| 0 / 0 |
