当前位置:  开发笔记 > 编程语言 > 正文

在Spring Data Mongo中设置自定义转换器

如何解决《在SpringDataMongo中设置自定义转换器》经验,为你挑选了1个好方法。

我们正在尝试为此设置我们自己的转换器,Spring Data Mongo并遇到了问题。

好像Spring从不要求registerConvertersIn使用CustomConversions,因此通过重写添加的自定义转换器AbstractMongoConfiguration#customConversions永远不会成为转换的一部分。

我们正在使用Spring Data Mongo 1.6.3,但对于1.8.0来说似乎也可能是个问题(我检查了对的调用,CustomConversions#registerConvertersIn但均未找到。)

我可以通过这样的CustomConversions#registerConvertersIn自定义调用来解决此问题MappingMongoConverter

class MongoConfig extends AbstractMongoConfiguration {
    @Bean
    @Override
    public MappingMongoConverter mappingMongoConverter() throws Exception {
        DbRefResolver dbRefResolver = new DefaultDbRefResolver(mongoDbFactory());
        MappingMongoConverter converter = new MappingMongoConverter(dbRefResolver, mongoMappingContext()) {
            @Override
            public void setCustomConversions(CustomConversions conversions) {
                super.setCustomConversions(conversions);
                conversions.registerConvertersIn(conversionService);
            }

        };
        converter.setCustomConversions(customConversions());
        return converter;
    }
}

那是一个错误还是我们做错了什么?

找到了另一种解决方法:https : //stackoverflow.com/a/14369998/4567261



1> 小智..:

但这对我没有任何帮助。在设置mongo模板时,我们需要告诉mongo db使用自定义转换。

@Bean
public MongoTemplate mongoTemplate() throws Exception {

    MongoTemplate mongoTemplate = new MongoTemplate(mongo(), mongoDatabase);
    MappingMongoConverter mongoMapping = (MappingMongoConverter) mongoTemplate.getConverter();
    mongoMapping.setCustomConversions(customConversions()); // tell mongodb to use the custom converters
    mongoMapping.afterPropertiesSet();
    return mongoTemplate;

}

单击此链接以获取更多详细信息:http : //ufasoli.blogspot.in/2017/06/custom-converter-for-mongodb-and-spring.html

推荐阅读
360691894_8a5c48
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有