今天使用mybatis if test出現個問題,原先使用如下:
< select id="selectTable" parametertype="hashmap" resulttype="hashmap"> select * from TABLE < where> < if test="type == 'M' or type=='C' "> ColA=#{volue} < / if> < / where> </ select>
但卻出現了:
com.XXXX.util.exception.MIException: org.apache.ibatis.exceptions.PersistenceException:
### Error querying database. Cause: java.lang.NumberFormatException: For input string: "M"
### Cause: java.lang.NumberFormatException: For input string: "M"
這就奇怪了,明明欲檢測的M與C應該是string怎會被轉換為number做檢查呢?
原來是"(雙引號)與'(單引號)解析的問題,改成如下:
< select id="selectTable" parametertype="hashmap" resulttype="hashmap"> select * from TABLE < where> < if test='type == "M" or type=="C" '> ColA=#{volue} < / if> < / where> </ select>
正常運作~ p.s話說就算使用了plugin貼xml語法還是會不正常啊...所以空格這種就自行刪除吧
沒有留言:
張貼留言