TL;DR
Er is geen DBRef
ondersteuning in reactieve Spring Data MongoDB en ik weet niet zeker of die er zal zijn.
Uitleg
Spring Data-projecten zijn georganiseerd in de componenten Template API, Converter en Mapping Metadata. De imperatieve (blokkerende) implementatie van de Template API gebruikt een imperatieve benadering om Document
op te halen s en zet deze om in domeinobjecten. MappingMongoConverter
in het bijzonder behandelt alle conversies en DBRef
oplossing. Deze API werkt in een synchrone/imperatieve API en wordt gebruikt voor beide Template API-implementaties (imperatieve en de reactieve).
Hergebruik van MappingMongoConverter
was de logische beslissing bij het toevoegen van reactieve ondersteuning omdat we geen code hoeven te dupliceren. De enige beperking is DBRef
resolutie die niet past in het reactieve uitvoeringsmodel.
Ter ondersteuning van reactieve DBRef
s, de converter moet worden opgesplitst in verschillende bits en de hele omgang met associaties vereist een revisie.
Referentie:https://jira.spring.io/browse/DATAMONGO-2146
Aanbeveling
Bewaar referenties als sleutels/Id's in uw domeinmodel en zoek deze indien nodig op. zipWith
en flatMap
zijn de juiste operators, afhankelijk van wat u wilt archiveren (model verbeteren met referenties, alleen opzoekreferenties).
Een verwante opmerking:Reactive Spring Data MongoDB wordt gedeeltelijk geleverd met een beperkte functieset. Contextuele SpEL-extensie is een functie die niet wordt ondersteund omdat deze componenten uitgaan van een imperatief programmeermodel en dus synchrone uitvoering.