mybatis語句:
<if test="status!=null and status=='D' "> , PriorStatus = Status </if>
報錯:
org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: ### Error updating database. Cause: java.lang.NumberFormatException: For input string: "D" ### Cause: java.lang.NumberFormatException: For input string: "D" at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:79) at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:447) at com.sun.proxy.$Proxy92.update(Unknown Source)
但是原先的代碼'VCID'不報錯
<when test="resclassid=='VCID'"> substr(resvalue,to_number(#{VCIDStartStrNum}),length(resvalue)-to_number(#{VCIDStartStrNum})) resvalue </when>
原因:'D'只有1位,被認為是char。'VCID'不止一位,認為是String。
解決:
<if test="status!=null and status== "D""> , PriorStatus = Status </if>