MySQL同步推送数据到MySQL时tinyint(1)类型时失败问题

背景

最近在负责的一个大数据产品项目中,有一个数据推送/同步数据的功能。

问题报错

生产环境的MySQL数据同步到预发环境。业务同学反馈数据同步失败,预发环境的数据不对。
从数据源获取数据的SQL语句为:

select
id,name,sort,type,url,inserttime,updatetime,isactive
from
rhinoce_menu

推送到预发环境的表,和生产环境的表字段,数量和类型完全一致。当然,目的数据源的数据表字段允许多余源头数据源的数据表字段。

排查

测试环境并没有复现这个问题。

注意到只有一个字段和源头的数据表字段不一样,就是type,无意间发现其类型为tinyint(1),隐隐约约感觉定位到问题根源。于是翻了下自己的博客。乖乖!!发现2020年8月份写过一篇类似的文章:Mybatis笔记之tinyint自动转型为boolean

验证

本地修改一下测试数据表的字段类型为tinyint(1)
在这里插入图片描述

参考

解决mysql数据库tinyInt(1) 转换为java的Boolean解决方案

posted @ 2022-03-08 23:09  johnny233  阅读(66)  评论(0编辑  收藏  举报  来源