可以使用以下任一方法在JPA中定义枚举
@Enumerated(EnumType.ORDINAL)
要么
@Enumerated(EnumType.STRING)
我想知道这两个定义的优缺点是什么?
我听说ORDINAL的性能比EclipseLink的STRING更好(更快)。
真的吗?
我总是去STRING
。
速度很少是最重要的问题-可读性和可维护性 更为 重要。
我使用STRING
它是因为手动检查数据库中的行要容易得多,但更重要的是,我可以做两件事,而无需接触数据库,ORDINAL
无法处理:
这两个更改都将更改数据库中已在使用的枚举的序数值,从而在使用时破坏现有数据ORDINAL
。
如果更改枚举值(不是很常见),则处理起来很简单:
UPDATE table SET enum_column = 'NEW_ENUM_NAME' where enum_column = 'OLD_ENUM_NAME';
我听到一些人建议在C++中使用枚举类,因为它们的类型安全。 但这到底意味着什么呢?
我尝试使用@Enumerated annotation映射枚举类型,但得到以下错误: 我的工作:在postgres @entity@table(name=“test_table”)公共类TestTable{... @enumerated(enumtype.string)@column(name=“col”)private TestType col;...}
我的JPA实体作为枚举字段 哪里 如果我用规范添加where条件 将枚举包含到规范查询中的正确方法是什么?
枚举具有名为'hash value'的属性,该属性是枚举内的索引。
问题内容: 我们有一个带有枚举字段-的实体,我们想使用JPA注释-为它设置默认值。 但是,当我们将实体保存到数据库时,此字段的值为和。对于布尔字段- 正确的默认值()已保存。 如果改为使用:,则会在保存时得到以下异常: 我们做错了什么?为什么它仅适用于布尔值? 问题答案: 当某些SQL代码在未为emailCommunicationStatus列指定任何值的情况下插入一行时,您所做的工作很有用。在这