Я использую nhibernate envers для аудита. создавая агрессивную таблицу аудита для каждой таблицы в базе данных.nhibernate envers и оптимистичный параллелизм
Envers требуется два обязательных поля: одна версия и другая временная метка.
но поле версии также необходимо в основной таблице для оптимистического параллелизма.
позволяет сказать: TableA {идентификатор версии, имя} затем на Envers таблицу аудита с имеем: {ID, версия, имя, пересмотра, revisionType}
поля в таблице аудита: версии и ревизии будет точно такой же, оба содержат версию записи.
Если я удаляю поле версии из основной таблицы, то оптимистичный параллелизм не будет работать с nhibernate, и для Envers обязательно указать поле ревизии.
Как я могу справиться с этой ситуацией?
понять, но это нехорошо иметь 2 поля, содержащие точно такую же информацию: (поэтому стараюсь посмотреть на решение, с помощью которого я могу его избежать .... – 2013-03-16 16:15:22
Ну, информация другая. Оптимистическая версия блокировки должна присутствовать только в «живых» (текущих) объектах. Нет смысла ее проверять. С другой стороны, версия Envers присутствует только в проверенных объектах. – adamw