Conditional auditing problem
acichon89 Nov 9, 2012 8:34 AMHi, I've followed documentation chapter tutorial "15.8. Conditional auditing".
here is what I've done so far:
Done:
<property name="hibernateProperties"> <props> <prop key="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</prop> <prop key="hibernate.show_sql">true</prop> <prop key="hibernate.hbm2ddl.auto" >update</prop> <prop key="hibernate.connection.useUnicode">true</prop> <prop key="hibernate.connection.characterEncoding">UTF-8</prop> <prop key="hibernate.jdbc.batch_size">0</prop> <prop key="org.hibernate.envers.audit_table_suffix">_version</prop> <prop key="org.hibernate.envers.revision_field_name">version_id</prop> <prop key="hibernate.listeners.envers.autoRegister">false</prop> </props> </property>
Done:
public class CustomEnversListener extends EnversPostUpdateEventListenerImpl { private static final long serialVersionUID = 1L; public CustomEnversListener(AuditConfiguration enversConfiguration) { super(enversConfiguration); } @Override public void onPostUpdate(PostUpdateEvent arg0) { System.out.println("!!! just logging entity !! "+arg0.getEntity()); super.onPostUpdate(arg0); } }
I overrided extisting EnversIntegrator:
public class CustomEnversIntegrator extends EnversIntegrator { @Override public void integrate(Configuration configuration, SessionFactoryImplementor sessionFactory, SessionFactoryServiceRegistry serviceRegistry) { super.integrate(configuration, sessionFactory, serviceRegistry); final AuditConfiguration enversConfiguration = AuditConfiguration.getFor( configuration, serviceRegistry.getService( ClassLoaderService.class ) ); EventListenerRegistry listenerRegistry = serviceRegistry.getService( EventListenerRegistry.class ); listenerRegistry.appendListeners(EventType.POST_UPDATE, new CustomEnversListener(enversConfiguration)); } }
I have no idea what to do with it now. Any more explanation, please ?