0

すでに動作しているアプリケーションのいくつかのフィールドに注釈 @Enumerated があります。列挙値が変更された場合の問題を防ぐために、 @Enumerated(EnumType.STRING) に変更するように言われました。データベースはすでに入力されているため、質問は

データベースの値を 1,2,3.. から Enum クラスの対応する文字列値に変更するにはどうすればよいでしょうか?

4

2 に答える 2

0

この注釈をマークすると、ORM ライブラリは、Enum.valueOf() 関数を使用して String を Enum 値に自動的に変換しようとします。したがって、DB には Enum の String 形式、つまり Enum 値の toString()/name() 表現が含まれている必要があります。

于 2013-07-10T23:47:54.500 に答える
0

値を維持してDBを変更する方法を尋ねている場合は、いくつかの手順で実行する必要があると思います(値を切り替える基本的なアルゴリズム):

  1. 数値になる新しい列をテーブルに追加します。
  2. 列の値を新しい列にコピーします。
  3. 列のすべてのコンテンツを削除します
  4. テーブルを変更して文字列列にします
  5. バックアップ列の値を元の列にコピーします。

これは非常に詳細であり、これがあなたが求めているものかどうかはわかりません...

于 2013-07-11T19:40:33.147 に答える