MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

A auditoria Spring Data MongoDB não funciona para documentos incorporados


Decidi resolvê-lo usando o 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));
        }
    }
}

E, em seguida, adicione o bean correspondente ao contexto do aplicativo
<bean id="customAuditingEventListener" class="app.CustomAuditingEventListener"/>