网站安全制度体系的建设情况成人职业培训机构
@Enumerated用于标注枚举字段,对应mysql的enum类型
-
源码支持两种类型
package javax.persistence;public enum EnumType {ORDINAL,//按照枚举的下标,使用Enum类型实例在Enum中声明的顺序,通过这个序号来将Enum类型字段映射成int类型来存储;STRING;//按照枚举的名字,使用Enum类型实例中的name属性来完成映射,将Enum类型映射成字符串的方式private EnumType() {} }
-
默认情况
当不使用任何注解的时候,默认情况下是使用
ordinal
属性,序号是从0开始的 -
ORDINAL例子
3.1 定义一个Enum类
public enum Gender {MALE,FEMALE }
3.2 定义一个Entity
@Data//自动生成get和set方法 @Entity public class Person{ @Id@GeneratedValueprivate Long id;@Column(nullable = false)private String name;@Columnprivate Gender gender;public Person(String name, Gender gender){this.name = name;this.gender = gender;} }
3.3 数据库中表结构
Enum类型字段Gender被映射成int(11)类型3.4 插入数据
@Test public void insert_data_into_person(){personService.save(new Person("Tom", Gender.MALE));personService.save(new Person("Joy", Gender.FEMALE)); }
3.5 查看数据库中的插入结果
表中Gender.MALE对应的序号是0,Gender.FEMALE对应的序号是1 -
STRING的例子
4.1 定义一个Enum类
public enum Gender {MALE,FEMALE }
4.2 一个Entity
@Data//自动生成get和set方法 @Entity public class Person{ @Id@GeneratedValueprivate Long id;@Column(nullable = false)private String name;@Column@Enumerated(EnumType.STRING)private Gender gender;public Person(String name, Gender gender){this.name = name;this.gender = gender;} }
4.3 数据库中表结构
Enum类型字段Gender被映射成VARCHAR(255)类型4.4 插入数据
@Test public void insert_data_into_person(){personService.save(new Person("Tom", Gender.MALE));personService.save(new Person("Joy", Gender.FEMALE)); }
4.5 查看数据库中的插入结果
表中Gender.MALE对应的就是MALE,Gender.FEMALE对应的就是FEMALE