我一直在尝试注册我自己写的自定义转换器更改默认的ID值。 但它从来没有真正调用。 这里是我的自定义转换器
public class EventKeyConverter implements Converter<Event,DBObject> {
@Override
public DBObject convert(Event object) {
DBObject dbObject = DBObjectTransformer.toDBObject(object);
dbObject.put("_id", KeyGenerator.getRandomKey());
return dbObject;
}
}
这里要说的是我没有注册用户转换的地方
@Override
@Bean
public CustomConversions customConversions() {
List<Converter<?, ?>> converters = new ArrayList<Converter<?, ?>>();
converters.add(new EventKeyConverter());
return new CustomConversions(converters);
}
@Override
@Bean
public MappingMongoConverter mappingMongoConverter() throws Exception {
MappingMongoConverter converter = new MappingMongoConverter(
eventsMongoDbFactory(), mongoMappingContext());
converter.setCustomConversions(customConversions());
return converter;
}
@Bean
public MongoTemplate eventsMongoTemplate() throws Exception {
final MongoTemplate template = new MongoTemplate(
eventsMongoDbFactory(), mappingMongoConverter());
template.setWriteResultChecking(WriteResultChecking.EXCEPTION);
return template;
}
当我节省一些对象该转换器不会被调用。
编辑1:我需要更改默认的对象ID到所有存储库一些自定义的ID(UUID +随机密钥)。 这就是为什么我试图使用蒙戈转换器。
编辑2:刚刚发现的问题。 更改@Configuration在包含customConversion()类@Component并能正常工作。 但是,仍然不知道这到底是怎么回事?