Я создал пользовательский конвертер для преобразования 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».