关于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>





上述报错是由于 MyBatis 在参数映射过程中无法找到或识别到指定的 TypeHandler 导致的。 根据报错信息,错误发生在属性 'enumerationItem' 上,该属性的 javaType 是 com.alibaba.fastjson.JSONArray,jdbcTypenull报错信息指出找不到对应的 TypeHandler。 要解决这个问题,您可以尝试以下几个步骤: 1. 确保正确配置了 TypeHandler:请检查在 MyBatis 的配置文件中是否正确配置了 com.alibaba.fastjson.JSONArray 的 TypeHandler。确保在 `<typeHandlers>` 配置中有类似以下的配置: ```xml <typeHandlers> <typeHandler handler="com.example.JsonArrayTypeHandler"/> </typeHandlers> ``` 或者在 application.properties 文件中配置: ```properties mybatis.type-handlers=com.example.JsonArrayTypeHandler ``` 请注意,`com.example.JsonArrayTypeHandler` 是您自定义的处理 JSONArray 的 TypeHandler 的完整类名。 2. 检查 TypeHandler 实现:确保您自定义的 TypeHandler 实现类(例如 JsonArrayTypeHandler)继承自 BaseTypeHandler,并正确实现了相关的方法。请参考上面提供的示例代码。 3. 检查包路径和类名:确保在配置文件中指定的包路径和类名与实际的 TypeHandler 类完全一致。 4. 检查 MyBatis 版本兼容性:如果您使用的是较旧的 MyBatis 版本,可能会存在兼容性问题。请确保您使用的 MyBatis 版本与自定义 TypeHandler 兼容。 如果上述步骤都没有解决问题,请提供更多的代码和配置细节,以便更好地帮助您解决该问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值