tk.mybatis 遇到问题记录

Skipping MapperFactoryBean with name 'xxx' and 'xxx.xxx.xxx.xxx' mapperInterface. Bean already defined with the same name!

  • 检查数据源配置中是否有Mybatis的MapperScan注解,
  • 检查mapper中是否有@org.apache.ibatis.annotations.Mapper注解
    去除这些注解 然后在ApplicationBootstrap类上添加import tk.mybatis.spring.annotation.MapperScan @MapperScan(basePackages = "com.xxx"),

Error creating bean with name 'baseMapper' defined in file

@MapperScan(basePackages = "com.xxx")扫描的包中不能包含BaseMappermapper,例如扫描的包是com.mapper.demoBaseMapper不能在这个包下,可以放在com.mapper

Error invoking SqlProvider method (tk.mybatis.mapper.provider.SpecialProvider.dynamicSQL),java.lang.NoSuchMethodException: tk.mybatis.mapper.provider.SpecialProvider.()

  • 在application.properties中添加mapper.mappers=tk.mybatis.mapper.common.Mapper,com.xxx.BaseMapper
    出现这个问题的原因是因为你用到了tk.mybatis.mapper.common.Mapper 之外的其他接口,例如: MySqlMapper,当你没有配置 mappers 参数的时候,通用 Mapper 只会解析tk.mybatis.mapper.common.Mapper 中提供的方法,所以你使用不包含在内的其他方法时就会报错。

通常在使用接口时,都会创建自己的 BaseMapper 接口,例如:

package x.y.z;
//import ...
public interface BaseMapper extends Mapper, MySqlMapper {
    
}

这种情况下,如果你不正确配置 mappers 参数,你就无法使用 MySqlMapper 中提供的几个方法。

你可能感兴趣的:(tk.mybatis 遇到问题记录)