我在已经运行的应用程序中的某些字段上有注释 @Enumerated。我被告知将其更改为 @Enumerated(EnumType.STRING) 以防止枚举值更改时出现问题。数据库已经填充,所以问题是
将数据库上的值从 1,2,3.. 更改为 Enum 类的相应 String 值的好方法是什么?
如果您问如何维护值和更改数据库,我认为您必须分几步完成(切换值的基本算法):
这是非常详细的,我不确定这是不是你要问的......
当您标记此注释时,您的 ORM 库应自动尝试使用 Enum.valueOf() 函数将字符串转换为枚举值。所以你的数据库应该包含你的枚举的字符串形式,即枚举值的 toString()/name() 表示。