MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

mongodb multi tenacy spel mit @Document

Endlich herausgefunden, warum ich dieses Problem bekommen habe.

Wenn Sie die Servlet 3-Initialisierung verwenden, stellen Sie sicher, dass Sie den Anwendungskontext wie folgt zum Mongo-Kontext hinzufügen

    @Autowired
private ApplicationContext appContext;

public MongoDbFactory mongoDbFactory() throws UnknownHostException {
    return new SimpleMongoDbFactory(new MongoClient("localhost"), "apollo-mongodb");
}

@Bean
MongoTemplate mongoTemplate() throws UnknownHostException {
    final MongoDbFactory factory = mongoDbFactory();

    final MongoMappingContext mongoMappingContext = new MongoMappingContext();
    mongoMappingContext.setApplicationContext(appContext);

    // Learned from web, prevents Spring from including the _class attribute
    final MappingMongoConverter converter = new MappingMongoConverter(factory, mongoMappingContext);
    converter.setTypeMapper(new DefaultMongoTypeMapper(null));

    return new MongoTemplate(factory, converter);
}

Überprüfen Sie die automatische Verknüpfung des Kontexts und auch mongoMappingContext.setApplicationContext(appContext);

Mit diesen beiden Leitungen konnte ich die Komponente korrekt verkabeln, um sie im Multi-Tenant-Modus zu verwenden