springboot 自定义转换器工厂不生效_springboot中的枚举转换

可能会比较啰嗦,凑合着看把

springboot + mybatis

1.先从前端传参开始(一般用到比较多可能就是添加或者编辑)

一般我们定义一个枚举都会类似如下:

public enum DemoLevelEmum  {
    qt(1,"青铜"),
    by(2,"白银"),
    hj(3,"黄金"),
    zs(4,"钻石"),
    ds(5,"大师"),
    wz(6,"王者");
    private Integer level;
    private String name;
    DemoLevelEmum(Integer level,String name){
        this.level = level;
        this.name = name;
    }
}

实体Demo类(用户段位数据)引用枚举类大致如下:

public class Demo {
    private Integer demoId;
    private String name;
    private DemoLevelEmum level;
}

下面是一个向数据库添加一条(用户段位)数据的接口,DemoMapper 就只是只有的insert添加数据的方法:

@RequestMapping("/demo")
@RestController
public class DemoComtroller{
   @Autowired
   private DemoMapper demoMapper;

   @RequestMapping("/add")
   public ResponseResult add( Demo demo){
       return ResponseResult.success(demoMapper.insert(demo));
   }
}

这种方法是没有使用@RequestBody的情况,后续会说到

前端传递过来的肯定不会是DemoLevelEmum 枚举,也不是qt或者青铜.常规来说我们只需要前端传递过来的是一个int类型的值,比如1,2,3或者是4.这个时候我们没做任何处理来接收,会出现以下错误:

07ff43cfa10b8999f5983879382d9b98.png

这种情况需要我们自己去处理

1.先定义一个BaseEnum接口,里面只有一个getId方法

public interface AhqEnum {
    Integer getId();
}

2.之前的定义的DemoLevelEmum枚举类实现AhqEnum接口,代码如下:

publ
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值