Mongodb 按字段转换枚举值

Mongodb 按字段转换枚举值,mongodb,spring-boot,enums,spring-data-mongodb,spring-data-mongodb-reactive,Mongodb,Spring Boot,Enums,Spring Data Mongodb,Spring Data Mongodb Reactive,我在春季使用反应式MongoDB。 以下是枚举语言: public enum Language { ARABIC("ar"), UZBEK("uz"); private final String code; Language(String code) { this.code = code; } public String getCode() { return code;

我在春季使用反应式MongoDB。 以下是枚举语言:

public enum Language {
    ARABIC("ar"),
    UZBEK("uz");

    private final String code;

    Language(String code) {
        this.code = code;
    }

    public String getCode() {
        return code;
    }

    public static Language getLanguage(String codeString) {
        return Stream.of(Language.values())
                .filter(code -> codeString.equals(code.getCode()))
                .findFirst()
                .orElseThrow(IllegalArgumentException::new);
    }
}
以下是转换器:

@ReadingConverter
public class EnumReadingConverter implements Converter<String, Language> {

    @Override
    public Language convert(String source) {
        return Language.getLanguage(source);
    }
}

@ReadingConverter
公共类EnumReadingConverter实现转换器{
@凌驾
公共语言转换(字符串源){
返回语言.getLanguage(源代码);
}
}
@WritingConverter
公共类EnumWritingConverter实现转换器{
@凌驾
公共字符串转换(语言源){
返回source.getCode();
}
}
问题:
当我写入数据库时,它将
语言
枚举写入
“阿拉伯语”
“乌兹别克语”
。它应该写为
“uz”
“ar”
。为什么不这样保存?

一切正常,只是我忘了像这样注册转换器:

@Configuration
public class MongoDBConfiguration {

    @Bean
    public MongoCustomConversions customConversions(){
        List<Converter<?, ?>> converterList = new ArrayList<Converter<?, ?>>();
        converterList.add(new EnumReadingConverter());
        converterList.add(new EnumWritingConverter());
        return new MongoCustomConversions(converterList);
    }
}
@配置
公共类MongoDBConfiguration{
@豆子
公共MongoCustomConversions customConversions(){
列表>();
添加(新的EnumReadingConverter());
添加(新的EnumWritingConverter());
返回新的MongoCustomConversions(转换器列表);
}
}

谢谢你的建议

@Smutje它正在工作。非常感谢。
@Configuration
public class MongoDBConfiguration {

    @Bean
    public MongoCustomConversions customConversions(){
        List<Converter<?, ?>> converterList = new ArrayList<Converter<?, ?>>();
        converterList.add(new EnumReadingConverter());
        converterList.add(new EnumWritingConverter());
        return new MongoCustomConversions(converterList);
    }
}