bug往往会让人suprise,今天遇到了这个问题,在网上找了很多解决方法,都没有解决,然而一个小小的尝试就解决,一个忠告代码不要想着简写。
这下面这几种是自己在网上总结的方法网上:
1、mapper接口和mapper.xml是否在同一个包(package)下?名字是否一样(仅后缀不同)?
2、mapper.xml的命名空间(namespace)是否跟mapper接口的包名一致?
3、接口的方法名,与xml中的一条sql标签的id一致
4、如果接口中的返回值List集合(不知道其他集合也是),那么xml里面的配置,尽量用resultMap(保证resultMap配置正确),不要用resultType
5、如果你的项目是maven项目,请你在编译后,到接口所在目录看一看,很有可能是没有生产对应的xml文件,因为maven默认是不编译的,因此,你需要在你的pom.xml的<build></build>里面, 加这么一段:
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
从这开始是我包的错,和解决方法
很多人,都是因为第五个问题,导致报错,额!我可能与众不同吧!
下面是我报的错:
后面抱着瞎猫碰死耗子的意思,添加上了@Param("roleIds")结果正确了,问题解决!!!所以虽然说是新版本的一般不用写@Param也行,不过只是一般情况下,有时候可能会不一般
从现在开始记录自己的bug们,希望再也没有那一天,能用上它,bug君保佑!!!
来源:oschina
链接:https://my.oschina.net/u/4115134/blog/3190524