【发布时间】:2020-11-16 06:21:46
【问题描述】:
我希望我的类中的所有枚举都由 JPA 作为字符串保存,而不是序数。我可以在全球某个地方声明吗?我正在使用 Spring Data JPA + Hibernate + postgresql。
【问题讨论】:
标签: postgresql hibernate jpa spring-data-jpa
我希望我的类中的所有枚举都由 JPA 作为字符串保存,而不是序数。我可以在全球某个地方声明吗?我正在使用 Spring Data JPA + Hibernate + postgresql。
【问题讨论】:
标签: postgresql hibernate jpa spring-data-jpa
答案是否定的。
枚举参数是编译时常量 - 无法在运行时更改它们,也无法制作“项目默认值”。
奇怪的是,唯一明智的选择是STRING,主要是因为ORDINAL 很脆弱;你的枚举顺序永远被锁定(尽管数据手术),所以我不明白为什么默认是ORDINAL - 我从来没有听说过任何使用它的项目。
【讨论】:
import static javax.persistence.EnumType.STRING; 然后只需在使用站点@Enumerated(STRING)。