Có hai loại đối tượng, được ánh xạ tới hai lớp Java trong bộ sưu tập MongoDB duy nhất:Repositories mùa xuân dữ liệu MongoDB không thực hiện thừa kế một cách chính xác
@Document
public class Superclass { ... }
@Document(collection = "superclass")
public class Subclass extends Superclass { ... }
và hai kho đối với những thực thể:
public interface SuperclassRepository extends MongoRepository<Superclass, String> {}
public interface SubclassRepository extends MongoRepository<Subclass, String> {}
MongoRepositories
không xử lý việc thừa kế của các thực thể một cách chính xác. Trong khi truy vấn cho tất cả các đối tượng Subclass
(ví dụ SubclassRepository.findAll()
) tập hợp kết quả chứa các đối tượng Superclass
, được khởi tạo (hoặc ít nhất đã được cố gắng khởi tạo) với giá trị null cho các trường là một phần của Subclass
, nhưng không phải là một phần của Superclass
.
Kết quả dự kiến sẽ là SubclassRepository
nên quay lại chỉ Subclass
đối tượng, trong khi SuperclassRepository
nên trở Superclass
và Subclass
đối tượng. Nó hoạt động theo cách này trong Spring JPA dữ liệu.
Có ai gặp phải lỗi này và có giải pháp nào về cách sửa lỗi không?
Tôi đã tạo [ticket] (https://jira.spring.io/brows e/DATAMONGO-1142) và [yêu cầu kéo] (https://github.com/spring-projects/spring-data-mongodb/pull/266) cho lỗi đó. –