当前位置: 首页 > news >正文

Navicat更改MySql表名后IDEA项目启动会找原来的表

问题:找不到表,项目启动失败

MySQL 里已经 RENAME TABLE old_name TO new_name; 了,但项目一启动就抛
Table 'xxx.old_name' doesn't exist,说明 代码/配置里还有地方没改
按下面 4 个层次一次性扫干净即可解决。


  1. Java 实体/映射层(最常见)

  • JPA:@Table(name = "old_name") → 改成新表名
  • MyBatis XML:<select id="xxx" resultType="Xxx" table="old_name"> 或 SQL 语句里写死的 FROM old_name
  • MyBatis-Plus:@TableName("old_name")
  • Hibernate:hibernate.hbm2ddl.auto=validate 时也会校验表名,务必同步。

  1. Spring 配置文件

  • spring.datasource.schema/data 里如果写了 old_name.sql 初始化脚本,一起改名。
  • Flyway/Liquibase 脚本:
    • 若已执行过的脚本里包含旧表名,不要改历史脚本,而是 新增一条迁移脚本 把旧表 rename 成新表;
    • 若脚本尚未在生产执行,可直接改脚本后重新跑。

  1. 二级缓存 / MyBatis-Plus 全局缓存

  • MyBatis-Plus 3.4+ 默认带 表映射缓存,改表名后缓存仍指向旧表。
    解决:清掉 target/build/ 目录,重新编译;或在启动参数里加
    mybatis-plus.global-config.db-config.table-underline=true
    mybatis-plus.configuration.cache-enabled=false
    
    临时关闭缓存验证。

  1. 数据库连接池 / 多数据源路由

  • 若用了 ShardingSphere、动态数据源
http://www.dtcms.com/a/328560.html

相关文章:

  • 树结构无感更新及地图大批量点位上图Ui卡顿优化
  • C++ 类型擦除技术:`std::any` 和 `std::variant` 的深入解析
  • 【C++】哈希
  • 终端安全与网络威胁防护笔记
  • 信号反射规律
  • 内存顺序、CAS和ABA:std::atomic的深度解析
  • 亚马逊POST退场后的增长突围:关联与交叉销售的全链路策略重构
  • 语义分割实验
  • python 实现KPCA核主成分分析
  • Ceph的Crush算法思想
  • word——照片自适应框大小【主要针对需要插入证件照时使用】
  • Linux内核进程管理子系统有什么第二十六回 —— 进程主结构详解(22)
  • 深度学习-卷积神经网络-NIN
  • 数据结构:后缀表达式:结合性 (Associativity) 与一元运算符 (Unary Operators)
  • Linux软件编程(三)文件操作-文件 I/O
  • 笔试——Day36
  • Linux应用软件编程---文件操作3(文件IO及其指令、文件定位函数lseek、文件IO与标准IO的比较、缓冲区)
  • archlinux中VLC无法播放视频的解决办法
  • 【Datawhale夏令营】多模态RAG学习
  • 关于Linux编程3:fread/fwrite/流的定位/文件IO
  • 存储过程作为系统逻辑核心的架构思考 —— 以 SaaS 系统为例
  • 电商双 11 美妆数据分析:从数据清洗到市场洞察
  • 生产环境中Kubernetes Pod 安全上下文与策略的实战经验分享
  • nt!MmCreatePeb函数分析之peb中OSMajorVersion的由来
  • Flutter ExpansionPanel组件(可收缩的列表)
  • 【入门系列】图像算法工程师如何入门计算机图形学?
  • 数据分析基本内容(第二十节课内容总结)
  • MCU外设初始化:为什么参数配置必须优先于使能
  • redis的过期策略和定时器
  • 支持任意 MCP 协议的客户端