我有一个在Hibernate的EntityManager中管理的实体。该实体确实具有由ENUM表示的状态。 Hibernate确实将数据库中的ENUM值保存为整数。
当ENUM本身没有指定任何数值时,Hibernate如何执行查找?它是否使用序数值(哦亲爱的!)?
答案 0 :(得分:3)
通过指定要使用枚举的名称来声明映射。
@Enumerated(EnumType.STRING)
private YourEnum yourEnum;
默认值为EnumType.ORDINAL
。它将DB中的枚举持久化为与枚举类声明中的顺序相对应的数字。
而实际行为。
答案 1 :(得分:1)
魔法注释是@Enumerated
。
对于持久化枚举类型作为字符串。
@Enumerated(EnumType.STRING)
对于持久化枚举类型为整数。
@Enumerated(EnumType.ORDINAL)