可以使用以下任一方式在 JPA 中定义枚举
@Enumerated(EnumType.ORDINAL)
or
@Enumerated(EnumType.STRING)
我想知道这两个定义的优点和缺点是什么?
我听说 ORDINAL 在 EclipseLink 中比 STRING 表现更好(更快)。
真的吗?
我总是去STRING
.
速度很少不是最重要的问题 - 可读性和可维护性才是最重要的more重要的。
I use STRING
因为手动检查数据库中的行要容易得多,但更重要的是,我可以做两件事,而无需接触数据库,ORDINAL
无法处理:
- 我可以改变order我的枚举
- I can insert枚举列表中间的新枚举
这两个更改都会改变数据库中已使用的枚举的序数值,从而在您使用时破坏现有数据ORDINAL
.
如果更改枚举值(不常见),处理它很简单:
UPDATE table SET enum_column = 'NEW_ENUM_NAME' where enum_column = 'OLD_ENUM_NAME';
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)