TL;DR
Non c'è DBRef
supporto in Spring Data MongoDB reattivo e non sono sicuro che ci sarà.
Spiegazione
I progetti Spring Data sono organizzati in componenti Template API, Converter e Mapping Metadata. L'implementazione imperativa (di blocco) dell'API del modello utilizza un approccio imperativo per recuperare Document
se convertirli in oggetti di dominio. MappingMongoConverter
in particolare gestisce tutte le conversioni e DBRef
risoluzione. Questa API funziona in un'API sincrona/imperativa e viene utilizzata per entrambe le implementazioni dell'API Template (imperativa e reattiva).
Riutilizzo di MappingMongoConverter
è stata la decisione logica durante l'aggiunta del supporto reattivo in quanto non è necessario duplicare il codice. L'unica limitazione è DBRef
risoluzione che non si adatta al modello di esecuzione reattivo.
Per supportare DBRef
reattivo s, il convertitore deve essere suddiviso in più bit e l'intera gestione dell'associazione richiede una revisione.
Riferimento:https://jira.spring.io/browse/DATAMONGO-2146
Raccomandamento
Conserva i riferimenti come chiavi/ID nel tuo modello di dominio e cercali se necessario. zipWith
e flatMap
sono gli operatori appropriati, a seconda di cosa si desidera archiviare (migliora il modello con i riferimenti, cerca solo i riferimenti).
In una nota correlata:Reactive Spring Data MongoDB viene fornito in parte con un set di funzionalità ridotto. L'estensione SpEL contestuale è una funzionalità non supportata in quanto questi componenti presuppongono un modello di programmazione imperativo e quindi un'esecuzione sincrona.