TL;DR
Não há
DBRef
suporte no Spring Data MongoDB reativo e não tenho certeza de que haverá. Explicação
Os projetos Spring Data são organizados em componentes Template API, Converter e Mapping Metadata. A implementação imperativa (bloqueio) da API de modelo usa uma abordagem imperativa para buscar
Document
s e convertê-los em objetos de domínio. MappingMongoConverter
em particular, lida com toda a conversão e DBRef
resolução. Essa API funciona em uma API síncrona/imperativa e é usada para ambas as implementações da API de modelo (imperativa e reativa). Reutilização de
MappingMongoConverter
foi a decisão lógica ao adicionar suporte reativo, pois não precisamos duplicar o código. A única limitação é DBRef
resolução que não se encaixa no modelo de execução reativa. Para suportar
DBRef
reativo s, o conversor precisa ser dividido em vários bits e todo o tratamento da associação requer uma revisão. Referência:https://jira.spring.io/browse/DATAMONGO-2146
Recomendação
Mantenha referências como chaves/IDs em seu modelo de domínio e procure-as conforme necessário.
zipWith
e flatMap
são os operadores apropriados, dependendo do que você deseja arquivar (aprimore o modelo com referências, apenas referências de pesquisa). Em uma nota relacionada:Reactive Spring Data MongoDB vem parcialmente com um conjunto de recursos reduzido. A extensão SpEL contextual é um recurso que não é suportado, pois esses componentes assumem um modelo de programação imperativo e, portanto, execução síncrona.