0
期间不工作

我需要才达到dotReplacementKey春天引导和蒙戈:定制MappingMongoConverter DotReplacement

我使用的MongoDB这样的配置:

@Configuration 
public class MongoTemplateConfig { 

@Value("${adserver_mongo_connection_string}") 
private String databaseConnectionString; 

@Bean 
public MongoDbFactory mongoDbFactory() throws UnknownHostException { 

    MongoClientURI uri = new MongoClientURI(databaseConnectionString.trim()); 
    return new SimpleMongoDbFactory(uri); 
} 

@Bean 
public MongoTemplate mongoTemplate() throws UnknownHostException { 
    return new MongoTemplate(mongoDbFactory()); 
} 

@Bean 
public MappingMongoConverter mongoConverter(MongoDbFactory mongoFactory, MongoMappingContext mongoMappingContext) throws Exception { 
    DbRefResolver dbRefResolver = new DefaultDbRefResolver(mongoFactory); 
    MappingMongoConverter mongoConverter = new MappingMongoConverter(dbRefResolver, mongoMappingContext); 
    mongoConverter.setMapKeyDotReplacement("."); 

    return mongoConverter; 
} 
} 

我做UPSERT如下: mongoTemplate.bulkOps(...).upsert(...)

而是经由调试运行期间我发现不同MappingMongoConverter用于而不是这个已配置为@Bean

btw,如果@Inject MappingMongoConverter我从配置中获取合适的bean,keyDotReplacement =“。” 但看起来像Spring Boot使用另一个引擎盖

P.S.我已经看到了这question没有正确的答案,但mongoConverter.afterPropertiesSet()尝试,显然它不工作,以及

回答

1

这有点可笑,但问题是,我们应该通过这一习俗mappingMongoConverter到MongoTemplate初始化

@Bean 
public MongoTemplate mongoTemplate(MappingMongoConverter mappingMongoConverter) throws UnknownHostException { 
    return new MongoTemplate(mongoDbFactory(), mappingMongoConverter); 
}