1. 程式人生 > >關於spring整合mybatis報錯:Type handler was null on parameter mapping for property 'department'.

關於spring整合mybatis報錯:Type handler was null on parameter mapping for property 'department'.

這個錯誤的原因就是,你要傳遞的引數已經在mybatis檔案中配置過了,而傳遞引數時又用的這個名字所以解析時出錯。

例如我的resultMap中已經配置了userId,這是一個物件

<resultMap id="userDynamicMap" type="UserDynamicTO">
    <result property="income" column="INCOME"/>
    <association property="userId" javaType="UserTO">
        <id property="id" column="ID"/>
    </association>
  </resultMap>

但是在引數表示時,我這表示的是主鍵id,而不是一個物件,所以要把#{userId}改成別的名字

<update id="noSpeak" parameterType="UserDynamicTO">
    UPDATE USER_DYNAMIC SET FORBID_COMMIT_BEGIN_DATE = #{forbidCommitBeginDate},
        FORBID_COMMIT_END_DATE = #{forbidCommitEndDate}
        WHERE USER_ID = #{userId}
  </update>

《================================================================================================================》

如下圖所示:其實在User實體類中,我們已經把department傳過去了,但是在關聯表中,再一次使用department就會報錯。

<insert id="add" parameterType="org.itat.model.User">
insert into t_user(username,password,nickname,department)
  value(#{username},#{password},#{nickname},#{department.id});
</insert>


改正後應該為:《紅色部分》和資料庫一致即可

<insert id="add" parameterType="org.itat.model.User">


insert into t_user(username,password,nickname,dep_id)
  value(#{username},#{password},#{nickname},#{department.id});
</insert>