MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Il controllo di Spring Data MongoDB non funziona per i documenti incorporati

Ho deciso di risolverlo utilizzando ApplicationListener personalizzato

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 quindi aggiungi il bean corrispondente al contesto dell'applicazione

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