問題:很簡單的批量插入數據庫,帶小數點的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)),