@Override
public void onPostUpdate(PostUpdateEvent event) {
final String entityName = event.getDescriptor().getEntityName();
if ( getAuditService().getEntityBindings().isVersioned( entityName ) ) {
checkIfTransactionInProgress( event.getSession() );
final AuditProcess auditProcess = getAuditService().getAuditProcess( event.getSession() );
Object[] oldState = getOldDBState( auditProcess, entityName, event );
final Object[] newDbState = postUpdateDBState( event );
final AuditWorkUnit workUnit = new ModWorkUnit(
event.getSession(),
event.getDescriptor().getEntityName(),
getAuditService(),
event.getId(),
event.getDescriptor(),
newDbState,
oldState
);
auditProcess.addWorkUnit( workUnit );
if ( workUnit.containsWork() ) {
generateBidirectionalCollectionChangeWorkUnits(
auditProcess,
event.getDescriptor(),
entityName,
newDbState,
event.getOldState(),
event.getSession()
);
}
}
}