sql >> データベース >  >> NoSQL >> MongoDB

@Qualifierの問題

    これを試してください:

    public class MongoDbConfig {
        @Bean(name = {"sourceTemplate", "mongoTemplate"})
        public MongoTemplate getSourceTemplate() {
            MongoTemplate mt = new MongoTemplate(getMongoDbFactory(sourceServers, sourceDatabaseName));
            return mt;
        }
    
        @Bean(name="destinationTemplate")
        public MongoTemplate getDestinationTemplate() {
            MongoTemplate mt = new MongoTemplate(getMongoDbFactory(destinationServers, destinationDatabaseName));
            return mt;
        }
    }
    
    public class SourceDaoImpl implements SourceDao {
        @Autowired
        @Qualifier("sourceTemplate")
        private MongoOperations mongoOps;
    }
    
    
    public class DestinationDaoImpl implements DestinationDao {
        @Autowired
        @Qualifier("destinationTemplate")
        private MongoOperations mongoOps;
    }
    

    更新

    実際の方法:

    @Bean
        @ConditionalOnMissingBean
        public GridFsTemplate gridFsTemplate(MongoDbFactory mongoDbFactory,
                MongoTemplate mongoTemplate) {
            return new GridFsTemplate(
                    new GridFsMongoDbFactory(mongoDbFactory, this.properties),
                    mongoTemplate.getConverter());
        }
    

    MongoDataAutoConfigurationで 「mongoTemplate」という名前のMongoTemplateのBeanが必要ですが、これは見つかりません。代わりに、独自の2つの他のBean「sourceTemplate」と「destinationTemplate」を定義しました。

    これで問題は解決すると思います!



    1. 全文を他のインデックスと組み合わせる

    2. Nodejs + mongodb:$ refフィールドをクエリする方法は?

    3. Node.jsを使用したMongoDB操作でのコールバック

    4. mongoデータベースの変更