代码:
<when test="paramsMap.sort == 'c'">
i.sell_counts desc
</when>
当判断条件为 ‘a’,‘b’,'c’这种单字符时会报类型转换错误
原因:
这里的test是双引号包裹单引号,因为判断条件是单字符 ‘c’ 这里mybatis会把它当作char类型,而char类型查询是根据ASCII码进行查询的,所以这里的c会被当成整数进行查询,所以就会报错。
解决:
1、将双引号包裹单引号改成单引号包裹双引号
<when test='paramsMap.sort == "c"'>
i.sell_counts desc
</when>
2、将单引号用转义符代替
<when test="paramsMap.sort == "c"">
i.sell_counts desc
</when>