可以使用任一方法在 JPA 中定义枚举
@Enumerated(EnumType.ORDINAL)
或者
@Enumerated(EnumType.STRING)
我想知道这两个定义的优点和缺点是什么?
我听说 ORDINAL 比使用 EclipseLink 的 STRING 表现更好(更快)。
真的吗?
原文由 jst99 发布,翻译遵循 CC BY-SA 4.0 许可协议
可以使用任一方法在 JPA 中定义枚举
@Enumerated(EnumType.ORDINAL)
或者
@Enumerated(EnumType.STRING)
我想知道这两个定义的优点和缺点是什么?
我听说 ORDINAL 比使用 EclipseLink 的 STRING 表现更好(更快)。
真的吗?
原文由 jst99 发布,翻译遵循 CC BY-SA 4.0 许可协议
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4k 阅读✓ 已解决
3 回答6k 阅读
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
我总是去
STRING
。速度很少是最重要的问题——可读性和可维护性 更为 重要。
我使用
STRING
因为手动检查数据库中的行要容易得多,但更重要的是,我可以做两件事,而无需触及数据库,ORDINAL
无法处理:这两项更改都将改变数据库中已使用的枚举的序数值,因此如果您使用
ORDINAL
会破坏现有数据。如果您更改枚举值(不常见),处理它很简单: