TL;DR
Il n'y a pas de DBRef
support dans Spring Data MongoDB réactif et je ne suis pas sûr qu'il y en aura.
Explication
Les projets Spring Data sont organisés en composants Template API, Converter et Mapping Metadata. L'implémentation impérative (bloquante) de l'API Template utilise une approche impérative pour récupérer Document
s et convertissez-les en objets de domaine. MappingMongoConverter
gère en particulier toute la conversion et DBRef
résolution. Cette API fonctionne dans une API synchrone/impérative et est utilisée pour les deux implémentations de l'API de modèle (impérative et réactive).
Réutilisation de MappingMongoConverter
était la décision logique lors de l'ajout d'un support réactif car nous n'avons pas besoin de dupliquer le code. La seule limitation est DBRef
résolution qui ne correspond pas au modèle d'exécution réactif.
Pour prendre en charge DBRef
réactif s, le convertisseur doit être divisé en plusieurs bits et toute la gestion de l'association nécessite une refonte.
Référence :https://jira.spring.io/browse/DATAMONGO-2146
Recommandation
Conservez les références en tant que clés/identifiants dans votre modèle de domaine et recherchez-les si nécessaire. zipWith
et flatMap
sont les opérateurs appropriés, en fonction de ce que vous souhaitez archiver (améliorer le modèle avec des références, rechercher des références uniquement).
Sur une note connexe:Reactive Spring Data MongoDB est partiellement livré avec un ensemble de fonctionnalités réduit. L'extension SpEL contextuelle est une fonctionnalité qui n'est pas prise en charge car ces composants supposent un modèle de programmation impératif et donc une exécution synchrone.