Spring Boot + JPA(hibernate 5) 开发时,数据库表名大小写问题
- 作者: 五速梦信息网
- 时间: 2026年04月04日 13:27
这几天在用spring boot开发项目, 在开发的过程中遇到一个问题hibernate在执行sql时,总会提示表不存在。
寻找之后发现, 建表时,表统一采用了大写。hibernate会把大写统一转换成小写。且 mysql在 linux下 大小写敏感。
解决:
1. 尝试修改mysql的cnf文件,改成不区分大小写。修改完成之后发现问题并没有解决,还产生了新的问题,表名无论大小写都失败了。
2. 数据库层面修改没有效果, 表结构和表名不能修改,那只能通过代码实现来解决此问题了。
先感谢 三个博主提供的资料
地址二 http://blog.csdn.net/jackyxwr/article/details/8618908
地址三 http://blog.csdn.net/qinshijangshan/article/details/53444499
第一篇和第二篇 博客给我提供了很好的思路,然后就照着去实践, hibernate 5之前 默认的命名定义策略使用的是 org.hibernate.cfg.ImprovedNamingStrategy 这个类。上面博客说的很清楚这里就不赘述了。想要自定义命名策略 直接集成此类,在此类上扩展就好了。
代码编写完成之后, 配置之后,并没有如愿以偿的解决了问题。思路很正确,只能顺着接着找了。 看到第三篇博客之后发现自己哪里有问题了, hibernate在5.1版本之后对此作了修改
引用第三篇博客原文:
原来是Hibernate5.1相关配置变了。
hibernate.ejb.naming_strategy将不再被支持,而是被替换成了两个属性:
hibernate.physical_naming_strategy
hibernate.implicit_naming_strategy
对于physical_naming_strategy有两个常用的配置:
对于PhysicalNamingStrategyStandardImpl有DefaultNamingStrategy的效果,对于SpringPhysicalNamingStrategy有ImprovedNamingStrategy的效果。
经过查看这两个类的源码之后, 发现上面的思路依旧是可以的下面是我的代码
yml的配置:
- 上一篇: Spring Boot 2 (五):Docker Compose + Spring Boot + Nginx + Mysql 实践
- 下一篇: Spring 4 官方文档学习 Spring与Java EE技术的集成
相关文章
-
Spring Boot 2 (五):Docker Compose + Spring Boot + Nginx + Mysql 实践
Spring Boot 2 (五):Docker Compose + Spring Boot + Nginx + Mysql 实践
- 互联网
- 2026年04月04日
-
Spring Boot Admin 离线实例
Spring Boot Admin 离线实例
- 互联网
- 2026年04月04日
-
spring boot controller访问不到
spring boot controller访问不到
- 互联网
- 2026年04月04日
-
Spring 4 官方文档学习 Spring与Java EE技术的集成
Spring 4 官方文档学习 Spring与Java EE技术的集成
- 互联网
- 2026年04月04日
-
spotlight监测服务器
spotlight监测服务器
- 互联网
- 2026年04月04日
-
SPL:跑批有这么难么?
SPL:跑批有这么难么?
- 互联网
- 2026年04月04日






