Когда использовать Nhibernate <version>? - PullRequest
8 голосов
/ 28 сентября 2011

Я смотрел в блоге ayende http://ayende.com/blog/3946/nhibernate-mapping-concurrency о параллелизме NHibernate, и мне до сих пор не очень понятно, когда его использовать.Похоже, что это решение для решения StaleObjectException.

Может кто-нибудь объяснить мне, по какому сценарию вы будете использовать и почему?

Спасибо.

1 Ответ

13 голосов
/ 28 сентября 2011

NHibernate Версия используется, когда вы хотите реализовать Оптимистическое управление параллелизмом . Без включения управления оптимистичным параллелизмом и блокировки ваше приложение будет использовать стратегию «Последний коммит выиграл». Пользователи могут потерять обновления, если две транзакции изменяют один и тот же объект примерно в одно и то же время. Более подходящая стратегия называется «Первый коммит выигрывает». В этом сценарии вторая транзакция завершится с ошибкой, которая скажет что-то вроде: Кто-то уже совершил изменения данных, которые вы собираетесь зафиксировать. Вы работали с несвежим данные. Пожалуйста, перезапустите разговор со свежими данными.

С Сохранение Java с Hibernate :

Hibernate обеспечивает автоматическое управление версиями. Каждый экземпляр сущности имеет версия, которая может быть числом или отметкой времени. Hibernate увеличивает версия объекта, когда он изменен, сравнивает версии автоматически, и выдает исключение, если обнаружен конфликт. Следовательно, вы добавьте это свойство версии для всех ваших постоянных классов сущностей в включить оптимистическую блокировку ... Номер версии является просто значением счетчика - он не имеет никакой полезной семантики значение. Дополнительный столбец в таблице сущностей используется вашим приложением Hibernate. Имейте в виду, что все другие приложения, которые обращаются к той же базе данных, могут (и, вероятно, следует) также реализовать оптимистическое управление версиями и использовать то же самое столбец версии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...