当前使用版本(必填,否则不予处理)
springboot 2.2.1 mybatis-plus 3.4.3
该问题是如何引起的?(确定最新版也有问题再提!!!)
在官方的demo里,指定@TableField(typeHandler = MybatisEnumTypeHandler.class),在updateById也会报错
重现步骤(如果有就写完整)
- 定义枚举
2.定义实体类
3.mybatis-plus配置
-
DAO
-
service调用DAO
报错信息
辅助定位问题的信息
- 必须得给枚举值指明@TableField(typehandler),直接改springboot配置mybatis-plus.configuration.default-enum-type-handler为MybatisEnumTypeHandler不生效
- @TableField(typeHandler = MybatisEnumTypeHandler.class, javaType = true),加上这个javaType=true,MybatisEnumTypeHandler就能正确拿到枚举类型了,否则updateById的时候,拿到的是java.lang.Object类型
Comment From: lj870704
有大哥可以解释下为什么呢?看了下底层,javaType的作用就是和jdbcType配合进行判断使用什么handler,但是赋值一个true是什么意思
Comment From: miemieYaho
看文档,最新版不需要指定枚举包了