MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

L'audit Spring Data MongoDB ne fonctionne pas pour les documents intégrés

J'ai décidé de le résoudre en utilisant ApplicationListener personnalisé

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));
        }
    }
}

Et puis ajoutez le bean correspondant au contexte de l'application

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