当前使用版本(必填,否则不予处理)
该问题是如何引起的?(确定最新版也有问题再提!!!)
springboot 配置了 type-handlers 这个属性 (这一条sql并没有使用到type-handlers)
mybatis-plus.type-handlers-package=com.xxx.web.typehandler
调用自带的selectById方法,id是Long类型
couponBaseMapper.selectById(param.getId())
sql打印结果(公司项目,我在此去掉了一部分表字段)
==> Preparing: SELECT ID,HOSPITAL_ID,NAME,`DESC`,PRICE, xxxx FROM coupon_base WHERE ID=?
==> Parameters: f5480ebe5580695fd7773e68751ee61f(String)
<== Total: 0
sql在执行时 id变成了uuid或者MD5的字符串了
param.getId()是Long包装类型的,哪怕我用数字写死也是这个结果
经过一上午排查,我把
mybatis-plus.type-handlers-package=com.xxx.web.typehandler
改成
mybatis.type-handlers-package=com.xxx.web.typehandler
然后上述问题就正常了
不知道这是mybatis-plus的bug还是feature
重现步骤(如果有就写完整)
报错信息
Comment From: miemieYaho
mybatis.type-handlers-package=com.xxx.web.typehandler 这是配置没生效而不是正常了,你看看你com.xxx.web.typehandler包下的类是不是写bug了
Comment From: wanghuzhou
mybatis.type-handlers-package=com.xxx.web.typehandler 这是配置没生效而不是正常了,你看看你com.xxx.web.typehandler包下的类是不是写bug了
额,可是我并没有在 TableField注解中指定 typehandler ,也没有在xml的resultMap中指定,还是说我只要配了这个属性 mp就一定会去这个包下找class 处理是吗?
Comment From: miemieYaho
这是mybatis的逻辑,配了就会把包下的typehandler注入到mybatis里面
Comment From: wanghuzhou
好的,多谢解答