Camel MyBatis十进制精度到MSSQL Server

时间:2014-11-25 05:57:28

标签: apache-camel mybatis

myBatis中的小数精度和插入语句有点麻烦。
它是一个列表请求,有时包含某些行中为空的值...

有效地发生的事情是当我们传递一个空值时,其他行中的小数精度会四舍五入到最接近的整数。如果没有传递空值,那么数据工作正常

所以我们的mapper文件就像......



 <insert id="insertSales" parameterType="java.util.List">
	
	insert into [dbo].[landing_sales_data] 
	  (
      [cust_code]
      ,[sales_value]
	  )	
      values
		<foreach item="sales" collection="list" open="(" close=")" separator="),(">      
			#{sales.custCode}, 
			#{sales.value,jdbcType=DECIMAL,numericScale=2}
		</foreach>            

  </insert>  
&#13;
&#13;
&#13;

哪个应该产生一些像

这样的SQL

&#13;
&#13;
insert into landing_sales_data
(
      [cust_code]
      ,[sales_value]
)
 values(1,11.11),(2,null)
&#13;
&#13;
&#13;

但最终结果是我们在表中得到11.00。

我们已在mapper中指定了jdbcType和数字刻度...并且SQL服务器上的跟踪确认它正在将11.11发送到数据库。

问题似乎是mybatis正在设置为null创建的参数,因为0小数精度会影响不相关的行。

任何想法?我希望我们只是遗漏了一些东西。

感谢

0 个答案:

没有答案