1.mybatis参数格式化异常导致,例如在动态sql拼接中String类型参数和数字比较。
Error querying database. Cause: java.lang.NumberFormatException: For input string:
<if test="param.xxx!= '2'">
mybatis自动转化成char类型,char与string类型进行比较产生错误。
其中xxx为String类型,加单引号mybatis会认为String和char比较,也会导致报错
解决方法:
用toString()转成字符串, ‘2’.toString()
改为双引号"2",外层使用单引号。
<if test='param.xxx!= "2"'>
2.精度丢失问题
后端传到前端的数据精度丢失,因为long的位数是64位,而js只能承载17位,多余的位数会被舍弃掉。所以只要在后端将传递出的数据转成string就行。
解决办法:
@JsonFormat(shape = JsonFormat.Shape.STRING)
private Long id;