Mybatis启动报错: No typehandler found for property xxxx 的另一种可能(由CLOB类型导致的问题)

背景:

搭了一个demo项目启动的时候Mybatis报错

错误信息:

Caused by: java.lang.IllegalStateException: No typehandler found for property xxx

排查过程:

在网上找资料,基本上清一色说是列字段名和数据库字段名没对上,所以首先检查下xml文件中的列名和数据库表的字段名是不是一一对应得上。如果你的问题是这个原因的话,那可以不用往下看。

由于我的代码是直接生成的,所以不存在粗心写错列名的情况,有的文件报错,有的文件不报错,反复观察出错的文件,发现出错的文件都有一个共同的特点:这个xxx变量的类型是Clob。错误信息也说到了类型处理的问题,所以怀疑是Clob这个特殊的数据类型导致的。

解决办法:

把bean类中的clob变量的类型改为String类型(不用担心String不够用,能存4个G),再启动,没有报错,问题解决。

具体就是把java.lang.IllegalStateException: No typehandler found for property xxx 这句错误信息中的xxx变量的数据类型从Clob改为String。


另外还有一种解决办法是自己定义一个typeHandler,暂时没时间研究,也提一下吧,有时间再补充。


你可能感兴趣的:(mybatis)