解决“无法获取实体类XXX对应的表名”报错的问题
出现的问题:
启动项目进行增改查自测时,发现新增和查询用到Example类时,总是会报错,出现“MapperException:无法获取实体类XXX对应的表名”,翻阅了百度,大家都是在处理依赖的过程中就解决了,即启动类中 @MapperScan(“pdfc.platform.entity.mapper.*”) 引用的包改为 tk.mybatis.spring.annotation.MapperScan; (org–>tk)解决问题。尝试过后发现错误依旧,于是跟了下代码。
发现每次调用此方法时,entityTableMap 里的值一直为null:
public static EntityTable getEntityTable(Class<?> entityClass) {
EntityTable entityTable = entityTableMap.get(entityClass);
if (entityTable == null) {
throw new MapperException("无法获取实体类" + entityClass.getCanonicalName() + "对应的表名!");
}
return entityTable;
}
经排查后,发现是热部署搞的鬼,把项目里pom.xml中的devtools注释掉后,问题到此解决。
<!-- 热部署 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
解决方法:把 pom.xml 中的上图的依赖注释后,再重启项目调用接口恢复正常,在此之后重新打开注释也已正常。