背景
在使用JPA的过程中,我们在使用数据库存储类型数据时,当类型较少,使用枚举常量作为类型进行存储,需要用到 @Enumerated
注解。
@Enumerated源码定义
@Target({METHOD, FIELD})
@Retention(RUNTIME)
public @interface Enumerated {
/** (Optional) The type used in mapping an enum type. */
EnumType value() default ORDINAL;
}
其中, EnumType
枚举字段
public enum EnumType {
ORDINAL,//按照枚举的下标,使用Enum类型实例在Enum中声明的顺序,通过这个序号来将Enum类型字段映射成int类型来存储;
STRING;//按照枚举的名字,使用Enum类型实例中的name属性来完成映射,将Enum类型映射成字符串的方式
private EnumType() {
}
}
使用
1、默认情况下
当不使用任何注解的时候,默认情况下是使用ordinal属性,序号是从0开始的;
2、@Enumerated(EnumType.ORDINAL)
使用定义枚举时的下标;
3、@Enumerated(EnumType.STRING)
使用定义枚举时的枚举常量的字符串。