Avere due tipi di entità, che sono mappati a due classi Java nella collezione singolo MongoDB:primavera dati MongoDB repository non implementano correttamente eredità
@Document
public class Superclass { ... }
@Document(collection = "superclass")
public class Subclass extends Superclass { ... }
e due depositi per quelle entità:
public interface SuperclassRepository extends MongoRepository<Superclass, String> {}
public interface SubclassRepository extends MongoRepository<Subclass, String> {}
MongoRepositories
non gestiscono correttamente l'ereditarietà delle entità. Durante l'interrogazione per tutte Subclass
gli oggetti (ad esempio SubclassRepository.findAll()
) il set di risultati contiene Superclass
oggetti, cui si crea un'istanza (o almeno era stato trovato a essere istanziata) con valori nulli per i campi che fanno parte del Subclass
, ma non sono parte del Superclass
.
Il risultato previsto sarebbe che SubclassRepository
deve restituire solo Subclass
oggetti, mentre SuperclassRepository
dovrebbe restituire Superclass
e Subclass
oggetti. Funziona in questo modo in Spring Data JPA.
Qualcuno ha riscontrato questo bug e ha qualche soluzione su come risolverlo?
ho creato un [biglietti] (https://jira.spring.io/brows e/DATAMONGO-1142) e la [richiesta pull] (https://github.com/spring-projects/spring-data-mongodb/pull/266) per quell'errore. –