在运行时为jpa枚举生成db enum的值

时间:2013-06-24 02:17:18

标签: java sql postgresql jpa orm

我在互联网上看到了将postgresql枚举映射到java枚举的方法。但是当我修改数据库中的枚举时,我所看到的所有方法都不是很好。我想要做的是在运行时通过查询数据库或其他东西来创建java枚举值。如何继续下去? 例如在db中,我有enum {' a'' b',' c'' d'}并且我设法将数据库中的数据在一天内更改为{' a'' x',' d' e'}。有没有什么好方法可以确保我不会在java中获得enum的一致性问题。(显然手动更新是我的最后选择)。如果重要的话,我使用的是9.1 pg db之前

1 个答案:

答案 0 :(得分:2)

如果您要更新枚举定义,那么您不应该使用枚举。使用带有外键引用的查找表。

枚举实际上适用于您不希望枚举发生变化的情况,以及您准备在变更时做大量工作的情况。在这种情况下,如果更改枚举的定义,则期望必须更新使用枚举的所有代码是完全合理的。

相关问题