MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Spring Data MongoDB Auditing funktioniert nicht für eingebettete Dokumente

Ich habe mich entschieden, es mit benutzerdefiniertem ApplicationListener zu lösen

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

Und fügen Sie dann dem Anwendungskontext die entsprechende Bean hinzu

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