当前使用版本(必填,否则不予处理)

3.1.0

该问题是如何引起的?(确定最新版也有问题再提!!!)

数据库 status 字段类型是 tinyint(1) 对应的实体类字段类型是 STATUS_ENUM 类型 public enum STATUS_ENUM { NORMAL(0, "正常"), BACK_LIST(-1, "黑名单"); @EnumValue private final Integer status; private final String desc; }

配置文件 mybatis-plus: configuration: default-enum-type-handler: com.baomidou.mybatisplus.extension.handlers.EnumTypeHandler map-underscore-to-camel-case: true #开启下划线命名转驼峰命名

查询语句是可以的,他会把-1放到参数里 但是从数据库里映射回来,映射的是个null,我看了下,因为在EnumTypeHandler里调用rs.getObject(columnName) 导致因为是tinyint,所有返回的是个bool值

我觉得可以分开来 比如EnumIntTypeHandler, EnumStrTypeHandler 这样... 在TypeHandler里去调用对应的方法 rs.getInt(columnName) , rs.getString(columnName)

重现步骤(如果有就写完整)

报错信息

Comment From: zhaohuihua

tinyint取到的是boolean是需要在mysql的jdbcurl增加tinyInt1isBit=false参数吧

Comment From: AnLiBoBo

tinyint取到的是boolean是需要在mysql的jdbcurl增加tinyInt1isBit=false参数吧

是的,但是我其他地方好像也有把tinyint映射成bool,所以我没敢直接改配置文件

Comment From: qmdx

个性需求可以注解 typeHandler