Mongodb 按字段转换枚举值
我在春季使用反应式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;
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);
}
}