Mybatis-plus 异常:Not Found TableInfoCache

标题:Mybatis-plus 异常:Not Found TableInfoCache

在这里插入图片描述

Mybatis-plus 是一个流行的基于 Mybatis 的增强工具包,可以极大地简化数据库操作。然而,在使用 Mybatis-plus 过程中,可能会遇到一些异常情况,其中之一就是 “Not Found TableInfoCache” 异常。

异常信息:Not Found TableInfoCache

在使用 Mybatis-plus 进行数据库操作时,可能会遇到以下异常信息:

Not Found TableInfoCache

这个异常信息表明 Mybatis-plus 没有找到 YourEntity 对应的表的信息,导致无法执行数据库操作。

异常原因

该异常通常是由以下原因之一引起的:

  1. 实体类命名规范不符合要求: Mybatis-plus 要求实体类(Entity)的命名要与数据库表的命名规范相对应。默认情况下,Mybatis-plus 会将驼峰命名的实体类名转换成下划线分隔的表名。如果实体类命名不符合这个规范,会导致找不到对应的表。

  2. 实体类没有正确配置注解: Mybatis-plus 使用注解来标识实体类与数据库表的关联关系,例如 @TableName 注解。如果你的实体类没有正确配置这些注解,Mybatis-plus 就无法识别实体类与表之间的映射。

  3. Mybatis-plus 配置问题: 如果 Mybatis-plus 的配置有误,可能导致 TableInfoCache 无法正常工作。例如,可能在配置中禁用了 Mybatis-plus 的实体类自动扫描。

  4. SqlSessionFactory: 如果我们自己构建对应的 SqlSessionFactory 而不是MybatisSqlSessionFactoryBean,MyBatis-Plus将不会自动帮我们注入SqlSessionFactory。

解决方法

要解决 “Not Found TableInfoCache” 异常,你可以尝试以下方法:

  1. 检查实体类命名规范: 确保实体类的命名规范与数据库表相匹配。如果数据库表使用下划线分隔命名(例如 your_table_name),那么实体类应该使用驼峰命名(例如 YourTableName)。

  2. 配置实体类注解: 在实体类上使用 @TableName 注解来明确指定与哪个数据库表对应。确保实体类的主键字段使用 @TableId 注解标识。

  3. 检查 Mybatis-plus 配置: 确保 Mybatis-plus 的配置中没有禁用实体类的自动扫描。检查相关的配置文件(例如 mybatis-config.xmlapplication.propertiesapplication.yml)。

  4. 检查数据库连接: 确保数据库连接正确,Mybatis-plus 能够访问到对应的数据库。

  5. 重启应用: 如果以上方法没有解决问题,尝试重启应用程序,有时候问题可能是由于缓存或上下文加载导致的。

  6. SqlSessionFactory问题: 将我们构建SqlSessionFactory的地方替换成MybatisSqlSessionFactoryBean。

//        SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
        MybatisSqlSessionFactoryBean bean=new MybatisSqlSessionFactoryBean();

总之,“Not Found TableInfoCache” 异常的原因可能是多方面的,需要仔细检查实体类、注解配置和 Mybatis-plus 配置。通过逐一排查上述可能的原因,你应该能够成功解决这个异常,让 Mybatis-plus 在你的项目中正常运行。

猜你喜欢

转载自blog.csdn.net/weixin_45626288/article/details/132215047