轉載自:http://blog.csdn.net/u010448530/article/details/52023256
今天遇到一問題,之前好好的系統,現在不管查詢什么,都會報錯:Result map does not contain a value for java.lang.Integer
仔細想想,報錯的地方的代碼都沒有動過,唯一只有一個地方的代碼是報錯前新增的:
<select id="select" resultMap="java.lang.Integer" parameterType="java.lang.Integer" > SELECT CASE WHEN moneyIS NULL THEN 0 ELSE moneyEND AS money FROM ( select SUM(money) AS money from ABC where user_id = #{user_id,jdbcType=INTEGER} AND state = 11 AND is_del = 0 ) t </select>相對應的Dao中的代碼:
int selectTotalMoney(Integer userid);估計問題就是在這里了。
于是經過反復嘗試,發現一個好的解決辦法:
<resultMap id="ResultOfInteger" type="java.lang.Integer"> <result column="budget" 其實仔細一看,只是換了個表達方式而已,最終返回的值還是Integer,我只能說myBatis太死板了,以上僅為個人見解,若有不對之處,歡迎指正。經過測試,將resultMap=”java.lang.Integer” 改成 resultType=”java.lang.Integer” 也可以解決問題。
新聞熱點
疑難解答