MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

mongodb multitenacy spel avec @Document

J'ai enfin compris pourquoi j'avais ce problème.

Lorsque vous utilisez l'initialisation du servlet 3, assurez-vous d'ajouter le contexte d'application au contexte mongo comme suit

    @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);
}

Vérifiez l'autowiring du contexte et aussimongoMappingContext.setApplicationContext(appContext);

Avec ces deux lignes, j'ai pu câbler correctement le composant pour l'utiliser en mode multi locataire