0

我在已经运行的应用程序中的某些字段上有注释 @Enumerated。我被告知将其更改为 @Enumerated(EnumType.STRING) 以防止枚举值更改时出现问题。数据库已经填充,所以问题是

将数据库上的值从 1,2,3.. 更改为 Enum 类的相应 String 值的好方法是什么?

4

2 回答 2

0

如果您问如何维护值和更改数据库,我认为您必须分几步完成(切换值的基本算法):

  1. 在您的表格中添加一个新列,该列将是数字。
  2. 将列中的值复制到新列中。
  3. 删除列的所有内容
  4. 更改表格以使其成为字符串列
  5. 将备份列中的值复制回原始值。

这是非常详细的,我不确定这是不是你要问的......

于 2013-07-11T19:40:33.147 回答
0

当您标记此注释时,您的 ORM 库应自动尝试使用 Enum.valueOf() 函数将字符串转换为枚举值。所以你的数据库应该包含你的枚举的字符串形式,即枚举值的 toString()/name() 表示。

于 2013-07-10T23:47:54.500 回答