|
|
|
Hibernate. Оптимистичная блокировка. Не знаю месть ли возможность сделать задуманное.
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, вопрос в следующем. Предположим имеется сущности. Старны и города. Они связаны отношением один ко многим. Допустим, оператор_1 забил в базу следующие данные: Россия ______ 1.Москва 2.СПб 3.Витебск Украина _______ 1.Киев 2.Харьков Беларусь ________ 1.Минск 2.Гродно Оператор 2 Решил посмотреть, какие города принадлежат странам. Код: java 1. 2. 3. 4. 5. 6. 7. 8. Итого, после первой итерации, вывелись города, которые принадлежат России: Мск, СПб, Витебск. Оператор 2 обнаружил свою ошибку, и решил ее исправить, и закомитил изменения, сразу после первой итерации. Он город Витебск назначил Беларуси. В итоге, Оператор 1 увидет что один и тот же город принадлежит двум странам, что не есть хорошо. Для того чтобы это пофиксить, ввел оптимистичную блокировку, добавил поле @Version В таблицу City. И подправил вызов: Код: java 1. 2. 3. 4. 5. 6. 7. В итоге ловлю ексепшн. Это устраивает, т.е. при чтении данных хочу получить неизменяемый срез ну или ексепшн если были изменения. Так как я добавил поле @Version теперь, при редактировании City в случае одновременного редактирования я также получу ошибку. Но я не хочу ее там видеть, т.е. мне пофиг на редактирование. Пусть кто последний закомитит тот и прав. Я лишь хочу при чтении чтобы не было таких непоняток как с городом Витебском. Но хиб кидает исключения и при сохранении и при чтении данных в случае конкуррентного доступа. Я думал что строки, а именно LockModeType.NONE Код: java 1. 2. 3. 4. не будут обращать внимания на оптимистичную блокировку, но все равно ловлю OptimisticLockException. Вопрос в том, можно ли как-то отключить проверку на версионость при записи данных, а при чтении учитывать? Что делает LockModeType.NONE тогда? Ну или в сторону чего посмотреть. Мне важно именно чтобы при чтении никаких фантом не появилось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2017, 12:03 |
|
||
|
|

start [/forum/search_topic.php?author=asv_2204&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
30ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
14ms |
get tp. blocked users: |
1ms |
| others: | 627ms |
| total: | 726ms |

| 0 / 0 |
