XML文件不能被打包问题
记录最近使用Mybatis-plus时,在自定义写多表查询语句的时候遇到的错误,方便以后解决。
我的工程项目结构,由于使用Mybatis-plus非常舒服的代码生成器,自动将xml放在了java包下。
此时xml文件的sql语句,注意检查id是否与方法名对应,namespace是否与接口对应,resultMap的全类名是否对应,不然也会报错。
检查没问题之后,报错如下:
错误原因大致有两种:
mapper方法名和.xml标签中的id属性未对应
没有编译.xml文件
此时查看target编译目录,发现src下的.xml文件未被编译
这就是springboot会默认在java包下不打包xml等一些问题。
解决方法:
将.xml文复制到target中
将.xml文件放在resources中(使用此方法,注意id,namespace,resultMap是否对应)
配置编译方式和编译路径
pom中配置打包方式
<!-- 项目打包时会将java目录中的*.xml文件也进行打包 -->
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<!-- **表示多层目录,*表示一级目录 -->
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
</build>