TL;DR
Neexistuje žádný DBRef
podpora v reaktivních Spring Data MongoDB a nejsem si jistý, že bude.
Vysvětlení
Projekty Spring Data jsou organizovány do komponent Template API, Converter a Mapping Metadata. Imperativní (blokující) implementace Template API používá k načítání Document
imperativní přístup s a převést je na doménové objekty. MappingMongoConverter
zejména zpracovává veškerou konverzi a DBRef
rozlišení. Toto API funguje v synchronním/imperativním API a používá se pro obě implementace Template API (imperativní a reaktivní).
Opětovné použití MappingMongoConverter
bylo logické rozhodnutí při přidávání reaktivní podpory, protože nepotřebujeme duplikovat kód. Jediným omezením je DBRef
rozlišení, které neodpovídá modelu reaktivního provádění.
Pro podporu reaktivního DBRef
s, převodník je třeba rozdělit na několik bitů a celá manipulace s asociací vyžaduje generální opravu.
Reference:https://jira.spring.io/browse/DATAMONGO-2146
Doporučení
Uchovávejte reference jako klíče/ID v modelu vaší domény a podle potřeby je vyhledejte. zipWith
a flatMap
jsou vhodné operátory v závislosti na tom, co chcete archivovat (vylepšit model pomocí odkazů, pouze vyhledávat reference).
Související poznámka:Reactive Spring Data MongoDB přichází částečně s omezenou sadou funkcí. Kontextové rozšíření SpEL je funkce, která není podporována, protože tyto komponenty předpokládají imperativní programovací model a tedy synchronní provádění.