超详细的mybatis-gen.xml解释

com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: com.itheima.mp.domin.po.Address Not Found TableInfoCache. at com.baomidou.mybatisplus.core.toolkit.ExceptionUtils.mpe(ExceptionUtils.java:49) ~[mybatis-plus-core-3.5.3.1.jar:3.5.3.1] at com.baomidou.mybatisplus.core.toolkit.Assert.isTrue(Assert.java:38) ~[mybatis-plus-core-3.5.3.1.jar:3.5.3.1] at com.baomidou.mybatisplus.core.toolkit.Assert.notNull(Assert.java:72) ~[mybatis-plus-core-3.5.3.1.jar:3.5.3.1] at com.baomidou.mybatisplus.core.toolkit.GlobalConfigUtils.currentSessionFactory(GlobalConfigUtils.java:55) ~[mybatis-plus-core-3.5.3.1.jar:3.5.3.1] at com.baomidou.mybatisplus.extension.toolkit.SqlHelper.sqlSession(SqlHelper.java:86) ~[mybatis-plus-extension-3.5.3.1.jar:3.5.3.1] at com.baomidou.mybatisplus.extension.toolkit.SqlHelper.execute(SqlHelper.java:301) ~[mybatis-plus-extension-3.5.3.1.jar:3.5.3.1] at com.baomidou.mybatisplus.extension.conditions.ChainWrapper.execute(ChainWrapper.java:65) ~[mybatis-plus-extension-3.5.3.1.jar:3.5.3.1] at com.baomidou.mybatisplus.extension.conditions.query.ChainQuery.list(ChainQuery.java:39) ~[mybatis-plus-extension-3.5.3.1.jar:3.5.3.1] at com.itheima.mp.service.impl.IUserServiceImpl.queryUserAndAddressById(IUserServiceImpl.java:67) ~[classes/:na] at com.itheima.mp.service.impl.IUserServiceImpl$$FastClassBySpringCGLIB$$24d1ebf1.invoke(<generated>) ~[classes/:na] at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) ~[spring-core-5.3.27.jar:5.3.27] at org.springframework.aop.framework.CglibAopProxy.invokeMethod(CglibAopProxy.java:386) ~[spring-aop-5.3.27.jar:5.3.27] at org.springframework.aop.framework.CglibAopProxy.access$000(CglibAopProxy.java:85) ~[spring-aop-5.3.27.jar:5.3.27] at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:704) ~[spring-aop-5.3.27.jar:5.3.27] at com.itheima.mp.service.impl.IUserServiceImpl$$EnhancerBySpringCGLIB$$856d04da.queryUserAndAddressById(<gen
最新发布
04-30
### MyBatis-Plus 中 Address 实体类未找到 TableInfoCache 的解决方案 当遇到 `MybatisPlusException` 异常提示 `com.itheima.mp.domin.po.Address TableInfoCache not found` 时,这通常表明 MyBatis-Plus 在运行期间未能正确解析并缓存该实体类的相关元数据。以下是可能的原因分析以及对应的解决方案: #### 可能原因一:缺少必要的注解 如果 `Address` 类未被正确定义为映射表的实体类,则可能导致无法加载到 `TableInfoCache`。 ##### 解决方法: 确保 `Address` 类上已标注了 `@TableName` 注解,并指定了数据库中的对应表名。 ```java import com.baomidou.mybatisplus.annotation.TableName; @TableName("address") // 替换为实际的数据库表名 public class Address { private Long id; private String name; // Getter 和 Setter 方法省略... } ``` 此操作可以确保 MyBatis-Plus 能够识别该类作为实体类[^1]。 --- #### 可能原因二:扫描路径配置错误 如果项目中未正确配置 MyBatis-Plus 的 Mapper 扫描路径,可能会导致框架忽略某些包下的实体类或 Mapper 接口定义。 ##### 解决方法: 确认 Spring Boot 配置文件(如 `application.yml` 或 `application.properties`)中是否包含了正确的 Mapper 扫描路径设置。 对于 YAML 文件: ```yaml mybatis-plus: mapper-locations: classpath:mapper/*.xml typeAliasesPackage: com.example.domain # 将其替换为实际的实体类所在包路径 ``` 或者在 Java 配置类中手动指定扫描范围: ```java @Configuration public class MyBatisPlusConfig { @Bean public MapperScannerConfigurer mapperScannerConfigurer() { MapperScannerConfigurer scannerConfigurer = new MapperScannerConfigurer(); scannerConfigurer.setBasePackage("com.example.mapper"); // 替换为实际的 Mapper 接口所在的包路径 return scannerConfigurer; } } ``` 通过以上方式可确保 MyBatis-Plus 正确加载所需的 Mapper 和实体类[^2]。 --- #### 可能原因三:依赖版本冲突 当前使用的 MyBatis-Plus 版本为 `3.5.3.1`,可能存在与其他库之间的兼容性问题,尤其是与 Spring Boot 的集成部分。 ##### 解决方法: 检查项目的 Maven/Gradle 构建文件,确保所有相关依赖均匹配最新稳定版。例如,在 POM.xml 中添加如下内容以锁定版本号: ```xml <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.5.3.1</version> </dependency> <!-- 如果使用分页插件 --> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-extension</artifactId> <version>3.5.3.1</version> </dependency> ``` 此外,建议清理本地仓库缓存并通过命令重新下载依赖项: ```bash mvn clean install -U ``` 这样能够有效避免因版本不一致引发的问题[^3]。 --- #### 可能原因四:动态代理机制失效 有时由于 AOP 切面或其他拦截器的存在,可能导致 MyBatis-Plus 对于自动生成的代理对象处理不当,从而丢失原始类型的元信息。 ##### 解决方法: 尝试关闭 CGLIB 动态代理功能或将其实现改为 JDK 原生反射模式。具体做法是在全局配置中调整相关内容: ```properties spring.aop.proxy-target-class=false ``` 同时注意观察日志输出是否有其他潜在警告信息辅助定位根本原因[^4]。 --- ### 总结 综上所述,针对 `MybatisPlusException` 提示 `TableInfoCache not found` 这一类异常情况可以从以下几个方面入手排查修复:一是核查目标 Entity 是否具备必要属性标记;二是验证组件自动装配过程中涉及的基础参数设定无误;三是排除外部干扰因素比如第三方工具链引入不必要的副作用影响正常流程运转等等[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值