2017-06-28 16 views
1

私のコードをいけない仕事:
How to customize MappingMongoConverter (setMapKeyDotReplacement) in Spring-Boot without breaking the auto-configuration?
MappingMongoConverter setMapKeyDotReplacementは、このリンク以下

@Override 
@Bean 
public MappingMongoConverter mappingMongoConverter() throws Exception { 
    DefaultDbRefResolver dbRefResolver = new DefaultDbRefResolver(this.mongoDbFactory()); 
    MappingMongoConverter converter = new MappingMongoConverter(dbRefResolver, this.mongoMappingContext()); 
    converter.setCustomConversions(this.customConversions()); 
    converter.setMapKeyDotReplacement("_"); 
    return converter; 
} 

しかし、私は、Java JSONObjectあるこのJSON、解析しようとした場合:

{ 
    "Dr.Web category": "known infection source", 
    "categories": [ 
    "parked", 
    "uncategorized" 
    ] 
} 

この例外を常に起こる。

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.data.mapping.model.MappingException: Map key Dr.Web category contains dots but no replacement was configured! Make sure map keys don't contain dots in the first place or configure an appropriate replacement! 

これは実際にsetMapKeyDotReplacementが設定されているため、すべてのドットを置き換える必要があるという奇妙な原因です。

このソリューションが機能しない理由がありますか?

答えて

0

return文の前にconverter.afterPropertiesSet()を含めるようにしてください。

+0

私は次のように少し修正しました。mongoConverter.afterPropertiesSet()を呼び出す必要はありません。コンテナはそれをあなたのために呼ぶでしょう。 しかし、それは動作しません。 –