JPA中 @Enumerated 注解

背景

在使用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)
使用定义枚举时的枚举常量的字符串。

原文地址:https://www.cnblogs.com/hnxbp/p/15020990.html