RuYi框架-集成Mybatis-plus重复mapper扫描导致saveBatch报错

RuYi框架-集成Mybatis-plus后执行saveBatch报错

一、报错信息:

TableInfo not found for entity XXX
可能根因不一样,我是因为重复mapper扫描导致的,也有可能是扫描路径配置有问题等... 我这里只说下我遇到的原因和解决思路。请读者自行判断

二、问题根因:

mapper重复扫描

启动类上加了@MapperScan

image

RuYi框架 com.ruoyi.framework.config下面有一个MyBatisConfig

源码片段 这里也配置了扫描路径 导致mapper重复扫描冲突了

public static String setTypeAliasesPackage(String typeAliasesPackage)
{
ResourcePatternResolver resolver = (ResourcePatternResolver) new PathMatchingResourcePatternResolver();
MetadataReaderFactory metadataReaderFactory = new CachingMetadataReaderFactory(resolver);
List allResult = new ArrayList();
try
{
for (String aliasesPackage : typeAliasesPackage.split(","))
{
List result = new ArrayList();
aliasesPackage = ResourcePatternResolver.CLASSPATH_ALL_URL_PREFIX
+ ClassUtils.convertClassNameToResourcePath(aliasesPackage.trim()) + "/" + DEFAULT_RESOURCE_PATTERN;
Resource[] resources = resolver.getResources(aliasesPackage);
if (resources != null && resources.length > 0)
{
MetadataReader metadataReader = null;
for (Resource resource : resources)
{
if (resource.isReadable())
{
metadataReader = metadataReaderFactory.getMetadataReader(resource);
try
{
result.add(Class.forName(metadataReader.getClassMetadata().getClassName()).getPackage().getName());
}
catch (ClassNotFoundException e)
{
e.printStackTrace();
}
}
}
}
if (result.size() > 0)
{
HashSet hashResult = new HashSet(result);
allResult.addAll(hashResult);
}
}
if (allResult.size() > 0)
{
typeAliasesPackage = String.join(",", (String[]) allResult.toArray(new String[0]));
}
else
{
throw new RuntimeException("mybatis typeAliasesPackage 路径扫描错误,参数typeAliasesPackage:" + typeAliasesPackage + "未找到任何包");
}
}
catch (IOException e)
{
e.printStackTrace();
}
return typeAliasesPackage;
}

三、解决:

1、将MyBatisConfig文件注释掉,只保留一个扫描路径

2、配置application.yml文件

mybatis-plus:
type-aliases-package: com.ruoyi..domain
mapper-locations: classpath*:mapper/
/*Mapper.xml
configuration:
map-underscore-to-camel-case: true
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

3、pom文件引入依赖

dependency>
com.baomidou
mybatis-plus-boot-starter
3.5.3.1

posted @ 2025-05-08 08:54  skystrivegao  阅读(147)  评论(0)    收藏  举报