可以使用任一方法在 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 许可协议
8 回答6.5k 阅读
4 回答684 阅读✓ 已解决
2 回答3.4k 阅读
3 回答1.9k 阅读✓ 已解决
1 回答2.1k 阅读✓ 已解决
1 回答2.1k 阅读✓ 已解决
1 回答959 阅读✓ 已解决
我总是去
STRING
。速度很少是最重要的问题——可读性和可维护性 更为 重要。
我使用
STRING
因为手动检查数据库中的行要容易得多,但更重要的是,我可以做两件事,而无需触及数据库,ORDINAL
无法处理:这两项更改都将改变数据库中已使用的枚举的序数值,因此如果您使用
ORDINAL
会破坏现有数据。如果您更改枚举值(不常见),处理它很简单: