TL; DR
Không có DBRef
hỗ trợ trong Spring Data MongoDB phản ứng và tôi không chắc sẽ có.
Giải thích
Các dự án Spring Data được tổ chức thành các thành phần Template API, Converter và Mapping Metadata. Việc triển khai (chặn) bắt buộc của API Mẫu sử dụng phương pháp bắt buộc để tìm nạp Document
s và chuyển đổi chúng thành các đối tượng miền. MappingMongoConverter
đặc biệt xử lý tất cả chuyển đổi và DBRef
nghị quyết. API này hoạt động trong một API đồng bộ / bắt buộc và được sử dụng cho cả việc triển khai API mẫu (bắt buộc và phản ứng).
Tái sử dụng MappingMongoConverter
là quyết định hợp lý trong khi thêm hỗ trợ phản ứng vì chúng tôi không cần phải sao chép mã. Hạn chế duy nhất là DBRef
giải pháp không phù hợp với mô hình thực thi phản ứng.
Để hỗ trợ DBRef
phản ứng s, bộ chuyển đổi cần được chia thành nhiều bit và toàn bộ việc xử lý liên kết yêu cầu đại tu.
Tham khảo: https://jira.spring.io/browse/DATAMONGO-2146
Khuyến nghị
Giữ các tham chiếu dưới dạng khóa / Id trong mô hình miền của bạn và tra cứu chúng khi cần. zipWith
và flatMap
là các toán tử thích hợp, tùy thuộc vào những gì bạn muốn lưu trữ (nâng cao mô hình với các tham chiếu, chỉ tham chiếu tra cứu).
Một lưu ý liên quan:Reactive Spring Data MongoDB đi kèm một phần với một bộ tính năng được giảm bớt. Phần mở rộng SpEL theo ngữ cảnh là một tính năng không được hỗ trợ vì các thành phần này giả định một mô hình lập trình mệnh lệnh và do đó thực thi đồng bộ.