Mit zwei Arten von Unternehmen, die zu zwei Java-Klassen in der Einzel MongoDB Sammlung abgebildet werden:Spring Data MongoDB Repositorys nicht implementieren Vererbung richtig
@Document
public class Superclass { ... }
@Document(collection = "superclass")
public class Subclass extends Superclass { ... }
und zwei Endlager für dieses Unternehmen:
public interface SuperclassRepository extends MongoRepository<Superclass, String> {}
public interface SubclassRepository extends MongoRepository<Subclass, String> {}
MongoRepositories
nicht die Vererbung der Entitäten korrekt behandeln. Bei der Abfrage aller Objekte (zB SubclassRepository.findAll()
) enthält die Ergebnismenge Superclass
Objekte, die instanziert (oder zumindest versucht wurden instanziiert zu sein) mit Nullwerten für Felder, die Teil der Subclass
sind, aber nicht Teil der Superclass
sind .
Das erwartete Ergebnis wäre, dass SubclassRepository
nur Subclass
Objekte zurück, während SuperclassRepository
Superclass
und Subclass
Objekte zurückgeben sollte. Dies funktioniert in Spring Data JPA.
Hat jemand diesen Fehler gefunden und hat eine Lösung, wie man ihn beheben kann?
ich habe ein [ticket] erstellt (https://jira.spring.io/brows e/DATAMONGO-1142) und die [pull request] (https://github.com/spring-projects/spring-data-mongodb/pull/266) für diesen Fehler. –