乐趣区

关于java:SpringBoot-多模块Mapper问题

一、问题形容

当咱们想把私有局部的 mapper 抽出去的时候可能遇到以下问题

1. org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):

2. 私有模块 Mapper 无奈注入到别的模块的问题 

二、问题 1 解决办法

    1. 查看 mapper 与 xml 文件对应与配置是否匹配
    1. 批改 yml 的 mybatis 配置

      mybatis:
        mapperLocations: classpath:mapper/*.xml
      # 改为扫描全副导入模块
        mapperLocations: classpath*:mapper/*.xml
    1. Maven 配置

      # 如果上边还没解决能够尝试减少 maven 配置
        <build>
         <resources>
             <resource>
                 <directory>src/main/java</directory>
                 <includes>
                     <include>**/*.xml</include>
                 </includes>
             </resource>
             <resource>
                 <directory>src/main/resources</directory>
             </resource>
         </resources>
        </build>

      三、Mapper 无奈注入解决

      // 这很有可能是因为包扫描问题导致,各个模块的 mapper 之前的包名不一样。// 解决:在援用私有包的启动类上加
      @MapperScan({"xxx.business.mapper","xxx.common.mapper"})
      // 将所有的不一样的都扫描进去
      
退出移动版