Spring Bootを使用して、自分のドメインオブジェクトをJSON本体として受け入れ、Mongoドキュメントに永続化しようとするREST APIを公開しています。 JSONリクエストとで、この列挙体の小文字の値を小文字としてMongoに保存するにはどうしたらいいですか?列挙型の小文字の値を受け入れることについてSpringからAPIへの小文字のenum値
1
A
答えて
0
、あなたにも小文字でのMongoDBに保存するに関してthis answer
を参照することができ、カスタム・コンバータを作成し、同じを登録する必要があります。
典型的な書き込みコンバータのようなものになります
public final class YourEnumWriteConverter implements Converter<YourEnum, String> {
@Override
public String convert(YourEnum source) {
return source == null ? "" : source.name().toLowerCase();
}
}
また、DBから首尾列挙型として小文字の文字列を読み取るために、対応する読み取りコンバータを記述する必要があります。典型的な読み取りコンバータがなりますように:Converter
パッケージorg.springframework.core.convert.converter
そしてあなた@Configuration
ファイルで、単に登録に属し
public final class YourEnumReadConverter implements Converter<String, YourEnum> {
@Override
public YourEnum convert(String source) {
return source == null ? null : Arrays.stream(YourEnum.values()).
filter(enumInstance -> enumInstance.name().equalsIgnoreCase(source.trim())).
findFirst().
orElse(null);
}
}
と同じ:CustomConversions
が属する
@Bean
public CustomConversions customConversions() {
List<Converter<?, ?>> converterList = new ArrayList<>();
converterList.add(new YourEnumWriteConverter());
converterList.add(new YourEnumReadConverter());
return new CustomConversions(converterList);
}
org.springframework.data.mongodb.core.convert
これは問題を解決するはずです。ここで注目すべき重要な点は、アプリケーション内のすべての列挙型、またはアプリケーションに存在する特定の列挙型を小文字として永続化したい場合は、Converter
のペアを個別に書くのではなく、ConverterFactory
と書くことをお勧めしますそれぞれの列挙型。
ConverterFactory
いくつかのリンクの設定については、すでに長い間書いていません
関連する問題
- 1. Cの大文字小文字から小文字へ
- 2. C大文字から小文字へ
- 3. .htaccessディレクトリの大文字から小文字への変換
- 4. spring mvc form bean文字列から文字列への変換
- 5. Data StudioのSqlエディタで小文字から小文字への変換
- 6. enumの大文字小文字を使用する
- 7. 大文字と小文字の区別から大文字小文字を区別しないものへ
- 8. 数値大文字の小文字の小文字の和
- 9. Imgflip API小文字
- 10. Spring MVC:フォームからバインドする:enumへのオプション
- 11. jsonからenumへのMvcバインディングの問題(intからenumへのcustomexception)
- 12. Springアプリケーションの大文字と小文字の区別の問題
- 13. 不正な番号エラー - 小文字から大文字への変換(0xdf)
- 14. 小文字のendecaプロパティ値
- 15. 小数点から文字へのASCII変換 - C
- 16. ASCII小数点から文字列へ(C言語のArduino上)
- 17. 他のクラスからのenum値へのアクセス
- 18. POJOからAppコンテキストへのSpringロード値
- 19. Swift - switch文の文字列からenumを初期化する
- 20. C++のenum値からテンプレート引数へのマップ
- 21. クライアントからWeb APIへの文字列のリストを渡す
- 22. spring 3.0 type文字列を定義済みの形式の文字列からEnum型のKeyを持つ任意の型の値に変換する
- 23. ブール値の大文字小文字は重要ですか?
- 24. Javaのenumからprepared statementのmysql enumへ
- 25. ドイツ語の大文字小文字の大文字小文字
- 26. 文字列から文字列の配列への値を解析する
- 27. オブジェクト文字列から文字列への値の受け渡し
- 28. 小文字を小文字にのみ減らす
- 29. 小文字と小文字を文字列から分割する方法
- 30. Ajax JqueryからMVC Webアプリケーションへenumパラメータを渡すweb api