Java spring data mongo can';t pikup自定义分区时间转换器,为什么?

Java spring data mongo can';t pikup自定义分区时间转换器,为什么?,java,mongodb,spring-data-mongodb,Java,Mongodb,Spring Data Mongodb,我的问题是这样的 但我写了一个自定义的ZoneDateTime转换器: ZonedDateTimeToDateConverter @WritingConverter 公共类ZonedDateTimeToDateConverter实现转换器{ @凌驾 公共日期转换(ZonedDateTime源){ if(source==null){ 返回null; } 返回日期.from(source.toInstant()); } } DateToZoneDateTimeConverter @ReadingC

我的问题是这样的

但我写了一个自定义的ZoneDateTime转换器:

ZonedDateTimeToDateConverter

@WritingConverter
公共类ZonedDateTimeToDateConverter实现转换器{
@凌驾
公共日期转换(ZonedDateTime源){
if(source==null){
返回null;
}
返回日期.from(source.toInstant());
}
}
DateToZoneDateTimeConverter

@ReadingConverter
公共类DateToZonedDateTimeConverter实现转换器{
@凌驾
公共分区日期时间转换(日期源){
if(source==null){
返回null;
}
返回ZonedDateTime.ofInstant(source.toInstant(),ZoneId.of(“UTC”);
}
}
还有我的测试:

@Autowired
合作操作的反应性;
@试验
无效测试(){
ObjectId=newobjectid();
单据单据=新单据();
单据追加(“\u id”,id);
//doc.append(“a”,ZonedDateTime.now());//有效
doc.append(“zd1”,新文档(“f”,ZoneDateTime.now());//不工作
插入(文档,“测试集合”).block();
找到的文档=Mono.from(operations.getCollection(“测试集合”)
.find(新文档(“_id”,id)).first()).block();
assertNotNull(已找到);
}
如果我将ZDT实例添加到文档的第一级,例如
doc.append(“a”,ZonedDateTime.now())
-文档保存良好。但是,如果我将ZDT实例作为嵌套字段(嵌套的第二级)放置到文档中,我会收到一个异常:

org.bson.codecs.configuration.CodecConfigurationException:找不到类java.time.ZonedDateTime的编解码器


我做错了什么

我通过将转换器添加到自定义转换器配置中,解决了类似的问题:

@Configuration
public class MongoCustomConverterConfig {

    @Bean
    public MongoCustomConversions mongoCustomConversions(){
        List<Converter<?,?>> converters = new ArrayList<>();
        converters.add(new ZoneDateTimeWriteConverter());
        converters.add(new ZonedDateTimeReadConverter());
        return new MongoCustomConversions(converters);
    }
}
@配置
公共类MongoCustomConverterConfig{
@豆子
公共MongoCustomConversions MongoCustomConversions(){
列表