问题来源:表中有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