1 前言
一般在我们的数据库中,表示性别等类型的字段通常用int类型来表示,那么当我们声明了一个枚举类时,如何将枚举类的某一属性赋值到数据库呢?
2 测试
定义一个枚举类:
@Getter
public enum SexEnum {
MALE(1, "男"),
FEMALE(2, "女");
private Integer sex;
private String sexName;
SexEnum(Integer sex, String sexName) {
this.sex = sex;
this.sexName = sexName;
}
}
实体类字段:
@Data
//@TableName("t_user")
public class User {
//将属性所对应的字段指定为主键
//@TableId注解的value属性用于指定主键的字段
//@TableId注解的type属性设置主键生成策略
// @TableId(value = "uid", type = IdType.AUTO)
@TableId(value = "uid")
private Long id;
//指定属性所对应的字段名
@TableField("user_name")
private String name;
private Integer age;
private String email;
private SexEnum sex;
@TableLogic
private Integer isDeleted;
}
测试类:
@Test
public void test(){
User user = new User();
user.setName("admin");
user.setAge(33);
user.setSex(SexEnum.MALE);
int result = userMapper.insert(user);
System.out.println("result:"+result);
}
控制台输出:
原因是
数据库定义字段是int类型,但是插入的却不是int类型所以报错。
那么如何解决这个问题呢?只需两步
1)首先可以改变枚举类(将想要插入的值加上@EnumValue注解):
以上只是部分内容,为了维护方便,本文已迁移到新地址:mybatis-plus通用枚举 – 编程屋