一、问题描述
项目使用多个模块构建,其中 B模块依赖于A模块,A模块中有mapper 和对应的xml用于查询数据。但是启动项目之后,报如下错误:Invalid bound statement (not found): com.chinacaring.user.dao.mapper.UserMapper.getUserInfo
开始以为 没有加上mapperscan 未扫描对应的mapper,后来加上后还是同样的问题。
二、原因和解决方法
原因在于 和mapper相互绑定的 .xml文件不是代码,无需编译,但是需要指定在编译时 将 指定的资源文件(此处为 .xml文件)拷贝到对应目录下(此处应当为 编译好之后 类文件的对应目录)
在 pom中加入:
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
</build>
指定将 src/main/java目录下 匹配 **/*.xml格式的 文件 拷贝到 编译后的类文件相同目录下
不加之前 target的结构
加了拷贝资源的build之后
可见 指定的xml资源文件被 拷贝进来了,这样,再次运行 就可以找到mapper所绑定xml文件,并执行相应的操作了