2

I am using Hibernate Envers for my Auditing. Post-update and post-insert works fine.

I have a requirement where I need to audit only the updated columns in the audit table (e.g. employee_aud). By default envers will insert the entire persisted entity in to the audit table.

I need to insert values only which are updated.

Is there any possibility to do this ?

Thanks in advance.

Cheers !

user1679893
  • 19
  • 1
  • 3

2 Answers2

0

What happens if you dont configure envers listener for post-insert?

I mean if you take out post-insert listener from your config?

 <listener class="org.hibernate.envers.event.AuditEventListener" type="post-insert"/>
Maddy
  • 923
  • 5
  • 8
  • Or if you are using Hibernate 4, you need to turn off the normal Integrator and write your own: http://docs.jboss.org/hibernate/core/4.0/devguide/en-US/html/ch15.html#d0e5519 – adamw Oct 10 '12 at 11:36
0

When you annotate an entity with @Audited, you're controlling which properties Envers should inspect when changes occur. Those properties are then compared between the old and new state and if any differ, Envers will write a new audit record with the new state values for all audited properties.

In other words, Envers won't write a new audit row with only the modified properties you have toggled for audit. It will write a new audit row with all audited properties if any of them change.

Naros
  • 19,928
  • 3
  • 41
  • 71