Hibernate envers - Как хранить только обновленные значения
Я использую Hibernate Envers для моего аудита. После обновления и после вставки работает нормально.
У меня есть требование, когда мне нужно проверять только обновленные столбцы в таблице аудита (например, employee_aud). По умолчанию envers вставит всю сохраненную сущность в таблицу аудита.
Мне нужно только вставить значения, которые обновляются.
Есть ли возможность сделать это?
Заранее спасибо.
Ура!
2 ответа
Когда вы аннотируете объект с @Audited
вы контролируете, какие свойства должен проверять Envers при возникновении изменений. Затем эти свойства сравниваются между старым и новым состоянием, и, если они различаются, Envers запишет новую запись аудита с новыми значениями состояния для всех проверенных свойств.
Другими словами, Envers не будет писать новую строку аудита только с измененными свойствами, которые вы переключили для аудита. Он напишет новую строку аудита со всеми проверяемыми свойствами, если какие-либо из них изменятся.
Что произойдет, если вы не настроите прослушиватель envers для пост-вставки?
Я имею в виду, если вы удалите прослушиватель после вставки из вашего конфига?
<listener class="org.hibernate.envers.event.AuditEventListener" type="post-insert"/>