|
|
|
Как работает LockModeType.OPTIMISTIC
|
|||
|---|---|---|---|
|
#18+
Читаю: LockModeType.OPTIMISTIC — оптимистичная блокировка на чтение: если при завершении транзакции кто-то извне изменит поле @Version, то транзакция автоматически будет откачена и будет выброшено OptimisticLockException. Например, использую Spring Data: Код: java 1. 2. 3. 4. Как это работает под капотом? Делается некий select * from ... - получаем user-а с версией v=1. В этот момент кто-то меняется данного юзера и в базе теперь v=2. Выходим из метода getUserById, т.е. завершается транзакция - что происходит в этотм момент? Повторный селект чтобы получить актуальную версию v для сравнения с текущей? И в случае их несовпадения бросается эксепшн? Я правильно поняла? Растолкуйте плииииииз. Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2018, 15:57 |
|
||
|
Как работает LockModeType.OPTIMISTIC
|
|||
|---|---|---|---|
|
#18+
JulT, Обычно, исключение выкидывается при записи в БД, а не при чтении. То есть, вы вычитали version=1, вы сохраняете изменения. Совпадает с базой? Тогда ок - сохраняем. В базе другая версия? Значит кто-то уже поменял данные и всё что мы наделали не имеет смысла - открываемся нафиг с OptimisticLockException. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2018, 16:06 |
|
||
|
Как работает LockModeType.OPTIMISTIC
|
|||
|---|---|---|---|
|
#18+
С записью мне все понятно, я не могу понять значение фразы из определения - "оптимистичная блокировка на чтение". При оптимистической я ведь могу читать данные даже если в этот момент какая-то другая транзакция меняет их ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2018, 16:20 |
|
||
|
Как работает LockModeType.OPTIMISTIC
|
|||
|---|---|---|---|
|
#18+
JulT, Имеется ввиду, что если у вас транзакция только на чтение, то версию менять не стоит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2018, 16:24 |
|
||
|
Как работает LockModeType.OPTIMISTIC
|
|||
|---|---|---|---|
|
#18+
BlazkowiczJulT, Имеется ввиду, что если у вас транзакция только на чтение, то версию менять не стоит. Благодарю за ответ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2018, 16:31 |
|
||
|
Как работает LockModeType.OPTIMISTIC
|
|||
|---|---|---|---|
|
#18+
JulT, А и правда нигде внятного описания нет. JPA такое JEE. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2018, 16:40 |
|
||
|
|

start [/forum/topic.php?fid=59&gotonew=1&tid=2122252]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
164ms |
get topic data: |
10ms |
get first new msg: |
7ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 236ms |
| total: | 493ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...