1 问题描述
大家都知道mapper-locations是配置mapper路径的,但是有时候mapper路径可能不止一个
比如说有两个包A和B,A和B里面的业务模块不同就需要写各自的mapper,这时候如果只配置A的mapper路径,那么B的mapper路径肯定扫码不到然后引起报错
比如我这个项目,front和modules本应该是平价的,它们各自有它们的mapper文件执行不同的业务
今天我就遇到了这个问题,下面说下我的思路,不一定对,但是值得参考
2 解决思路
首先我一直在application.yaml文件的mapper-locations进行配置,希望可以通过它实现多个mapper配置
我试了很多种方式,包括:
classpath*:org/jeecg/**/*Mapper.xml
classpath:org/jeecg/**/*Mapper.xml
classpath:org/jeecg///*Mapper.xml
classpath*:org/jeecg/modules//xml/*Mapper.xml,org/jeecg/front//xml/*Mapper.xml
都是会报错:
我也试着加过@Repository和@Mapper,也无济于事。
后来我就想,我可以从启动类入手,然后我就在启动类加上@MapperScan(value = “org.jeecg.**.mapper”)这个注解,并配置扫码mapper路径
这下果然是可以了
3 总结
以上就是我的解决思路,希望可以帮助到大家。