解决MyBatis @param注解参数类型错误异常的问题
问题现象今天使用mybatis遇到个很奇怪的问题,我使用一个参数@param("解决办法我感觉可能使用用到了mybatis的关键字,所以就把threshold换了个名字,果然好了。问题原因某些关键词,mybatis会认为是某种类型,下面列出来一些,后面发现再补充。size, threshold, modCount是int类型loadFactor是float类型在mybatis中@Param注解的作用是为参数指定一个名称,在mapper文件中使用,而不是使用mybatis的arguments[0,1…但是在非动态的mapper――mybatis根据mapper接口创建实现类,@param注解是不起作用的。阅读mybatis的源码得知,检查@param注解的方法:此方法位于 org.apache.ibatis.binding.MapperMethod 的内部类 MethodSignature 中。在整合spring与mybatis,使用spring提供的sqlSessionTemplate进行查询时,没有从MapperRegistry的mapper缓存集合中取mapper,而是直接使用配置的sqlSessionTemplate。所以这种清况下,@param注解是无效的。
用户评论