mybatis 批量插入 decimal精度问题

问题:很简单的批量插入数据库,带小数点的decimal的入参保存到数据库发现自动四舍五入了
jdbcType=DECIMAL类型当list里面存在[{amount:20},{amount:20.4},{amount:20.54}]
   <foreach item="item" collection="list" separator=",">
#{item.amount,jdbcType=DECIMAL}
  </foreach>

  

 这时保存到数据的值:amount :20,20,21, 这就心态蹦了啊 线上一堆数据金额问题

生活仍需继续排查:

表现:当一个list进行批量添加时,decimal 类型会取精度最小的那个值进行四舍五入

根因:暂未找到,感觉是mybatis的一个bug...

解决:

 cast(#{item.amount,jdbcType=DECIMAL} as decimal(18,4)),

  

posted @ 2020-08-11 17:47  xwx唐宋元明清  阅读(1136)  评论(0编辑  收藏  举报