Spring Hibernate Пессимистическая блокировка

1

Некоторые объекты в моем приложении должны быть заблокированы в рамках определенной транзакции. Мне нужно заблокировать все сущности, которые участвуют в транзакции, и не хотели бы создавать специальные методы для блокировки объектов в моем DAO. Я использую весеннюю декларативную транзакцию и устанавливаю уровень изоляции для этого конкретного вызова метода, но когда данные извлекаются сгенерированным SQL-запросом, это обычный SELECT, а не SELECT XXX FOR UPDATE. Должен ли я вручную указывать блокировку для каждого участвующего объекта в транзакции в спящем режиме? Не следует ли это контролировать из изоляции транзакций? При установке режима блокировки на UPDATE в сеансе гибернации я вижу правильный запрос, означает ли это, что мне нужно вручную указать блокировку, даже если я уже указал выделение.

Лучший

  • 0
    Так что либо это действительно сложный вопрос, либо он чрезвычайно глубокий! : D
Теги:
spring
hibernate
jpa
spring-transactions

1 ответ

0

Да. Уровень изоляции и блокировка - это разные вещи, и наверняка блокировки не будут контролироваться из изоляции транзакции. Additionallky, я бы советовал вам не играть с уровнем изоляции, если у вас нет веской причины.

Вы должны использовать пессимистическую блокировку при запросе на применение SELECT... FOR UPDATE для выбранных объектов.

Это поможет вам

Пружинная пессимистическая блокировка

Ещё вопросы

Сообщество Overcoder
Наверх
Меню