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