JPA实体中的ENUMs序数(Hibernate)

时间:2017-02-10 13:21:12

标签: java hibernate jpa enums

我有一个在Hibernate的EntityManager中管理的实体。该实体确实具有由ENUM表示的状态。 Hibernate确实将数据库中的ENUM值保存为整数。

当ENUM本身没有指定任何数值时,Hibernate如何执行查找?它是否使用序数值(哦亲爱的!)?

2 个答案:

答案 0 :(得分:3)

通过指定要使用枚举的名称来声明映射。

@Enumerated(EnumType.STRING)
private YourEnum yourEnum;

默认值为EnumType.ORDINAL。它将DB中的枚举持久化为与枚举类声明中的顺序相对应的数字。

而实际行为。

答案 1 :(得分:1)

魔法注释是@Enumerated

对于持久化枚举类型作为字符串。

@Enumerated(EnumType.STRING)

对于持久化枚举类型为整数。

@Enumerated(EnumType.ORDINAL)