mybatis查询的java.lang.ClassCastException

问题来源:表中有text字段,使用mybatis生成工具后生成该表生成实体类时会多一个文件会,比如生成一个User实体类会多一个UserWithBlobs,多出的这个实体类中的变量就是表中的类型为text的字段而实体类User中就没类型为text字段的变量,UserWithBlobs继承User,而对于的mapper.java和mapper.xml文件的查询也是返回UserWithBlobs,mapper.xml中的查询看着也完全没毛病,比如说UserWithBlobs selectByPrimaryKey(String id ); 在使用这个方法时就会报java.lang.ClassCastException异常,User 不能转为 UserWithBlobs;换成User selectByPrimaryKey(String id ); 就不报错了,所以原因就是text类型有毒。。。。


解决办法:生成时不要生成UserWithBlobs这个实体类,在使用mybatis生成工具生成表中有类型为text的实体类时要在table中加点东西
例如上面user表中的a字段为text类型

<table domainObjectName="User" tableName="user">  
    <columnOverride column="a" javaType="java.lang.String" jdbcType="VARCHAR" />  
</table>  

这样就不会生成UserWithBlobs了,后面查询就不会坑了。。。
解决办法网上找的:http://www.cnblogs.com/grey-wolf/p/7238780.html

猜你喜欢

转载自blog.csdn.net/qq_30059235/article/details/77851061