2013-03-15 5 views
0

Я использую nhibernate envers для аудита. создавая агрессивную таблицу аудита для каждой таблицы в базе данных.nhibernate envers и оптимистичный параллелизм

Envers требуется два обязательных поля: одна версия и другая временная метка.

но поле версии также необходимо в основной таблице для оптимистического параллелизма.

позволяет сказать: TableA {идентификатор версии, имя} затем на Envers таблицу аудита с имеем: {ID, версия, имя, пересмотра, revisionType}

поля в таблице аудита: версии и ревизии будет точно такой же, оба содержат версию записи.

Если я удаляю поле версии из основной таблицы, то оптимистичный параллелизм не будет работать с nhibernate, и для Envers обязательно указать поле ревизии.

Как я могу справиться с этой ситуацией?

ответ

2

Envers version и оптимистичный параллелизм version Поля разные. Вероятно, вы должны переименовать один или другой, если это имена по умолчанию.

+0

понять, но это нехорошо иметь 2 поля, содержащие точно такую ​​же информацию: (поэтому стараюсь посмотреть на решение, с помощью которого я могу его избежать .... – 2013-03-16 16:15:22

+0

Ну, информация другая. Оптимистическая версия блокировки должна присутствовать только в «живых» (текущих) объектах. Нет смысла ее проверять. С другой стороны, версия Envers присутствует только в проверенных объектах. – adamw

Смежные вопросы