在 mybati 中 使用 sum 函数,如果返回的值是0,也就是没有数据可以计算的时候 ,不会返回 0 而是返回null. 而我们在 mapper 定义的时候 用的是integer,这样就会报错了。
有个函数 COALESCE(number1,number2) ,返回的是 第一个 非等于null的 值 。
sql 这样写 COALESCE(sum(o.total_price),0) ,就可以在sum的值为null的时候返回 0 ,解决报错的问题。