Hibernate envers - Как хранить только обновленные значения

Я использую Hibernate Envers для аудита. Пост-обновление и пост-вставка работают нормально.

У меня есть требование, когда мне нужно проверять только обновленные столбцы в таблице аудита (например, employee_aud). По умолчанию envers вставляет всю сохраняемую сущность в таблицу аудита.

Мне нужно вставить только обновленные значения.

Есть ли возможность это сделать?

Заранее спасибо.

Ваше здоровье !


person user1679893    schedule 09.10.2012    source источник


Ответы (2)


Что произойдет, если вы не настроите прослушиватель envers для пост-вставки?

Я имею в виду, если вы удалите прослушиватель post-insert из своей конфигурации?

 <listener class="org.hibernate.envers.event.AuditEventListener" type="post-insert"/>
person Maddy    schedule 09.10.2012
comment
Или, если вы используете Hibernate 4, вам нужно отключить обычный интегратор и написать свой собственный: docs.jboss.org/hibernate/core/4.0/devguide/en-US/html/ - person adamw; 10.10.2012

Когда вы аннотируете объект с помощью @Audited, вы контролируете, какие свойства Envers должен проверять, когда происходят изменения. Затем эти свойства сравниваются между старым и новым состояниями, и если они отличаются, Envers напишет новую запись аудита с новыми значениями состояния для всех проверенных свойств.

Другими словами, Envers не будет писать новую строку аудита только с измененными свойствами, которые вы переключили для аудита. Он запишет новую строку аудита со всеми проверяемыми свойствами, если какое-либо из них изменится.

person Naros    schedule 09.12.2016