Set MongoDb converter programmatically

后端 未结 6 1684
無奈伤痛
無奈伤痛 2020-12-01 08:20

I\'m trying to use a custom converter with spring-data-mongodb. I want to create it programmatically, but I get the following error:

org.springframework.core         


        
6条回答
  •  悲哀的现实
    2020-12-01 08:38

    Since org.springframework.data:spring-data-commons:1.13.3.RELEASE, here's how to programmatically create a MongoTemplate with custom converters

    public MongoTemplate mongoTemplate(String mongoUri) throws Exception {
        MongoDbFactory factory = new SimpleMongoDbFactory(new MongoClientURI(mongoUri));
        CustomConversions conversions = new CustomConversions(
                Arrays.asList(new FooWriteConverter(), new FooReadConverter()));
        MongoMappingContext mappingContext = new MongoMappingContext();
        DbRefResolver dbRefResolver = new DefaultDbRefResolver(factory);
        MappingMongoConverter mongoConverter = new MappingMongoConverter(dbRefResolver, mappingContext);
        mongoConverter.setCustomConversions(conversions);
        mongoConverter.afterPropertiesSet();
        return new MongoTemplate(factory, mongoConverter);
    }
    

    The converters (implementation omitted)

    class FooWriteConverter implements Converter { ... }
    class FooReadConverter implements Converter { ... }
    

提交回复
热议问题