TL;DR
Der er ingen DBRef
understøttelse i reaktive Spring Data MongoDB, og jeg er ikke sikker på, at der vil være det.
Forklaring
Spring Data-projekter er organiseret i Template API, Converter og Mapping Metadata-komponenter. Den imperative (blokerende) implementering af Template API bruger en imperativ tilgang til at hente Document
s og konverter disse til domæneobjekter. MappingMongoConverter
håndterer især al konvertering og DBRef
løsning. Denne API fungerer i en synkron/imperativ API og bruges til både Template API-implementeringer (imperativ og den reaktive).
Genbrug af MappingMongoConverter
var den logiske beslutning, mens vi tilføjede reaktiv support, da vi ikke har behov for at duplikere kode. Den eneste begrænsning er DBRef
opløsning, der ikke passer til den reaktive udførelsesmodel.
For at understøtte reaktiv DBRef
s, skal konverteren deles op i flere bits, og hele associeringshåndteringen kræver et eftersyn.
Reference:https://jira.spring.io/browse/DATAMONGO-2146
Anbefaling
Gem referencer som nøgler/Id'er i din domænemodel og slå disse op efter behov. zipWith
og flatMap
er de passende operatorer, afhængigt af hvad du vil arkivere (forbedr modellen med referencer, kun opslagsreferencer).
Om en relateret note:Reactive Spring Data MongoDB leveres delvist med et reduceret funktionssæt. Kontekstuel SpEL-udvidelse er en funktion, der ikke understøttes, da disse komponenter forudsætter en imperativ programmeringsmodel og dermed synkron udførelse.