今天生产出了个问题,异常打印如下:
看了一下代码,同事的代码是这样写的:
<update id="updateConsignOrderById" parameterType="java.util.Map"> update T_TM_CONSIGNORDER <set> END_OP_TIME = #{endOpTime}, END_DATE = #{endDate}, <if test="stateEnd != null"> STATE_END = #{stateEnd}, </if> <if test="endOpOperator != null"> END_OP_OPERATOR = #{endOpOperator} </if> </set> where ID = #{consignID} </update>实现类中:
coverMap.put("consignID", idsArray[i]); coverMap.put("stateEnd", 0L); coverMap.put("endOpTime", null); coverMap.put("endDate", null); coverMap.put("endOpOperator", "");写死的null,Oracle不支持,postgreSQL,MySQL,SQLSERVER都支持JdbcType.NULL类型
需要添加指定类型:
#{endOpTime,jdbcType=TIMESTAMP}另外:代码不严谨,有魔法值,代码行数超过80行,没有备注,不用对象用map传参,为了图省事不指定类型