Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在运行时从db enum为jpa enum生成值_Java_Sql_Postgresql_Jpa_Orm - Fatal编程技术网

Java 在运行时从db enum为jpa enum生成值

Java 在运行时从db enum为jpa enum生成值,java,sql,postgresql,jpa,orm,Java,Sql,Postgresql,Jpa,Orm,我在互联网上看到了将postgresql枚举映射到java枚举的方法。但是,当我在数据库中修改枚举时,我看到的所有方法都不好用。我想做的是在运行时通过查询数据库或沿着这些行的其他内容来创建java枚举值。最好如何进行? 例如,在数据库中,我有一个枚举{'a','b','c','d'},有一天我设法将它在数据库中更改为{'a','x','d','e'}。有没有什么好方法可以确保我在java中不会遇到enum的一致性问题(显然手动更新是我最后的选择)。我使用的是9.1 pg之前的数据库,如果这很重要

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

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

枚举确实适用于您不希望枚举发生更改的情况,以及您准备在枚举发生更改时执行重要工作的情况。在这种情况下,如果您更改了枚举的定义,那么期望必须更新使用该枚举的所有代码是完全合理的