zoukankan      html  css  js  c++  java
  • java.lang.IllegalStateException: No typehandler found for mapping XXX

          前言:今天遇到了这个问题,刚开始觉得很容易解决的,毕竟能定位到出问题的文件和对应的字段,根据以往的经验也可以判断出是字段映射类型不匹配的问题,后来找了半天还是没找到问题的根源,从网上百度,也没看到令人满意的分析以及和我情况类似的描述。于是,下定决心,先深呼吸,然后冷静下来好好玩一下。

          如下是我的分析过程,这里以提供分析的思路为主,希望以后在遇到类似的问题能一下子定位到,解决掉。

    1:异常信息的一部分,如下所示,和以往一样,先仔细瞧瞧,根据异常的提示基本能定位到问题出在那个文件,那个字段或者某个小氛围,如下所示

    Caused by: org.springframework.core.NestedIOException: Failed to parse mapping resource: 'file [D:workspaceXXX argetape-web-0.0.1-SNAPSHOTWEB-INFclassesmappersSortCenterRouteMapper.xml]'; nested exception is org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. Cause: java.lang.IllegalStateException: No typehandler found for mapping movementName
    at org.mybatis.spring.SqlSessionFactoryBean.buildSqlSessionFactory(SqlSessionFactoryBean.java:466)
    at org.mybatis.spring.SqlSessionFactoryBean.afterPropertiesSet(SqlSessionFactoryBean.java:340)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1479)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1419)
    ... 80 more
    Caused by: org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. Cause: java.lang.IllegalStateException: No typehandler found for mapping movementName
    at org.apache.ibatis.builder.xml.XMLMapperBuilder.configurationElement(XMLMapperBuilder.java:117)
    at org.apache.ibatis.builder.xml.XMLMapperBuilder.parse(XMLMapperBuilder.java:89)
    at org.mybatis.spring.SqlSessionFactoryBean.buildSqlSessionFactory(SqlSessionFactoryBean.java:464)
    ... 83 more
    Caused by: java.lang.IllegalStateException: No typehandler found for mapping movementName
    at org.apache.ibatis.mapping.ResultMapping$Builder.validate(ResultMapping.java:147)
    at org.apache.ibatis.mapping.ResultMapping$Builder.build(ResultMapping.java:136)
    at org.apache.ibatis.builder.MapperBuilderAssistant.assembleResultMapping(MapperBuilderAssistant.java:426)
    at org.apache.ibatis.builder.MapperBuilderAssistant.buildResultMapping(MapperBuilderAssistant.java:222)
    at org.apache.ibatis.builder.xml.XMLMapperBuilder.buildResultMappingFromContext(XMLMapperBuilder.java:371)
    at org.apache.ibatis.builder.xml.XMLMapperBuilder.resultMapElement(XMLMapperBuilder.java:276)
    at org.apache.ibatis.builder.xml.XMLMapperBuilder.resultMapElement(XMLMapperBuilder.java:248)
    at org.apache.ibatis.builder.xml.XMLMapperBuilder.resultMapElements(XMLMapperBuilder.java:240)
    at org.apache.ibatis.builder.xml.XMLMapperBuilder.configurationElement(XMLMapperBuilder.java:113)
    ... 85 more

    2:下面是我的分析过程

    2-1:定位到出问题的文件,字段,然后对照,映射的情况,映射对象的情况,数据库表字段的情况,如下所示:

    2-2:原本以为经过上面的分析一定能定位到问题的,结果让我大惑不解,没问题呀!仔仔细细看了几遍没发现有问题

    2-3:后来就按照我原来分析问题的思路,再重新分析一遍(有时候我们认为不可能出现问题的地方,可能是,一旦出现问题就容易令我们崩溃的地方),下面是我重新分析的思路,根据报错的提示信息——“No typehandler found for mapping”以及异常发生的嵌套位置,试着去定位到对应的源码,然后通过调试模式看看到底是什么引起了程序抛错,比较幸运,我一下子就定位到了的可能出现问题的源码之处了,如下所示:

     2-4:启动服务器,进入调试模式,跟踪源码报错的部分,分析当时的运行情况,我们看到了程序为什么抛出异常,以及可能存在问题的地方,到这里基本就定位到问题的根源了,放慢速度,让灵魂跟上脚步。让我奇怪的是我的字段明明是String类型的为什么和自己认为不一样哪?再回头看看那个String类型的真面目吧!

     2-5:我去,还真不是自己认为的java.lang.String类型的?问题是定位到了,怎么解决就不说了!但是为什么是这个类型呢?是谁修改的?还是自己一不小心导致的?编程是个细致的活,所以还是要胆大心细一些吧!

    3:参考

    http://stackoverflow.com/questions/19273783/no-typehandler-exception-in-mybatis

  • 相关阅读:
    获取指定扩展名的文件 分类: python 小练习 20130514 16:06 229人阅读 评论(0) 收藏
    #遍历E盘下的mp3文件 分类: python 小练习 python 20130514 18:27 303人阅读 评论(0) 收藏
    🍖Linux输出重定向
    🍖手动添加用户
    🍗文件权限管理
    🍖文件管理之打包压缩
    🍖文件处理三剑客:sed awk grep
    🍖权限管理之用户与用户组
    🍖文件管理之字符处理 sort uniq cut tr wc
    🍖文件处理之上传下载
  • 原文地址:https://www.cnblogs.com/godtrue/p/6647574.html
Copyright © 2011-2022 走看看