sql >> Base de Datos >  >> NoSQL >> MongoDB

La auditoría Spring Data MongoDB no funciona para documentos incrustados

Decidí resolverlo usando ApplicationListener personalizado

public class CustomAuditingEventListener implements 
        ApplicationListener<BeforeConvertEvent<Object>> {

    @Override
    public void onApplicationEvent(BeforeConvertEvent<Object> event) {
        Object source = event.getSource();
        if (source instanceof ParentDocument) {
            DateTime currentTime = DateTime.now();
            ParentDocument parent = (ParentDocument) source;
            parent.getChildren().forEach(item -> item.setUpdated(currentTime));
        }
    }
}

Y luego agregue el bean correspondiente al contexto de la aplicación

<bean id="customAuditingEventListener" class="app.CustomAuditingEventListener"/>