luckyMonkey
luckyMonkey
0.4.6也是一样的报错。我的工程是springboot + mybatis + clickhouse,通过mybatis封装SQL。代码样例: select count(*), countIf(id=1) from table
clickhouse.value.UnsignedLong这个类在0.4.1版本还不存在,我将jdbc的版本切换到0.4.1的时候找不到对应的导包。0.4.2才有了这个类
因为我查询的结果是两个值,所以我使用了Map作为resultMap接收mybatis查询的结果,查询到结果在代码中就直接get对应的value,所以具体的堆栈打印就只有一句ClassCastException:com.clickhouse.data.value.UnsignedLong cannot be cast to java.lang.Long。debug中可以看到Map接收到的结果中value对应的类型已经变为UnsignedLong了,你们这种改变是完全出乎我们使用的习惯的
"The change was added in https://github.com/ClickHouse/clickhouse-java/pull/1124 to ensure the Java lib can handle large”numbers correctly." 这个改变只是clickhouse中的数据类型与Java中数据类型的映射,但是我出错的是count函数而不是单个字段
第二种方法我试过了是可以解决我出现的问题的,感谢
我现在又发现新的报错UnsignedInteger can not cast to long,我如果想将UnsignedLong和UnsignedInteger同时映射给long,应该怎么修改?
我又发现了另一个问题,我在升级版本之前,clickhouse表中有一列属性为Float32 default 0,在插入null值时是OK的,但是在新的版本这个操作会直接报错