Пользовательский конвертер, установленный в MongoConverter для создания MongoTemplate, не работает - PullRequest
0 голосов
/ 29 августа 2018

Я создал пользовательский конвертер для преобразования arrayList в объект, а затем я установил этот пользовательский конвертер в MongoConverter, а затем создал MongoTemplate, но этот пользовательский конвертер не работает, когда данные извлекаются из Монго и пытаются преобразовать в пользовательский класс.

вот мой код:

public class MongoListToObjectConverter implements Converter<ArrayList, Object>{

    @Override
    public Object convert(ArrayList source) {
        return (Object) source;
    }
}

@Component
public class MongoConfig {
    @Autowired
    MongoDbFactory mongoDbFactory;

    @Bean
    public MongoTemplate mongoTemplate() throws Exception {
        MappingMongoConverter converter = new MappingMongoConverter(new DefaultDbRefResolver(mongoDbFactory),
            new MongoMappingContext());
        converter.setCustomConversions(new CustomConversions(Arrays.asList(new MongoListToObjectConverter())));
        converter.afterPropertiesSet();
        MongoTemplate mongoTemplate = new MongoTemplate(mongoDbFactory, converter);
        return mongoTemplate;
    }
}

и ниже - мой метод извлечения данных из монго.

@Override
public CloseableIterator<Map> findbyIorIdCreatedAtBetween(long ageGTE, long ageLT, String iorId, String collection) {
    return mongoTemplate.stream(new Query().addCriteria(new Criteria().andOperator(Criteria.where("iorId").is(iorId),
            Criteria.where("l_orderCreatedAt").gte(ageGTE).lte(ageLT))), Map.class, collection);
}

Даже после написания этого кода arraylist не преобразуется в объект, и я получаю сообщение об ошибке «Внедрите пользовательский конвертер и зарегистрируйте его в CustomConversions».

...