sharding-jdbc 分库分表报java.lang.Boo

2019-11-23  本文已影响0人  傑terry

项目简介

最近公司mysql有个表数据量3000多W决定分表,用sharding-jdbc插件做分表,根据字段taskId做分片路由。

问题现象

where中带有分片键的查询没有问题,对于没有的带分片键的查询会报错

Cause: java.lang.ClassCastException: java.lang.Boolean cannot be cast to java.lang.Integer

并且查询有的数据报错,有的数据不报错。

原因

是由于mysql中的 tinyint(1) 类型的字段mysql默认当作boolean型处理在转成int时出错,将 tinyint(1) 改为int(1) 或者 tinyint(2) 后不再报错。
或者jdbc加上:tinyInt1isBit=false

疑惑

不知道为什么 带有分片键的sql 就不会有这个问题?
路过的大神可以一起讨论下。

上一篇下一篇

猜你喜欢

热点阅读