Spring Boot + JPA(hibernate 5) 开发时,数据库表名大小写问题

摘要:
几天在用springboot开发项目,在开发的过程中遇到一个问题hibernate在执行sql时,总会提示表不存在。寻找之后发现,建表时,采用默认设置。hibernate会把大写统一转换成下划线加小写。且mysql在linux下大小写敏感。解决:1.尝试修改mysql的cnf文件,改成不区分大小写。修改完成之后发现问题并没有解决,还产生了新的问题,表名无论大小写都失败了。原来是Hibernate5.1相关配置变了。

几天在用springboot开发项目,在开发的过程中遇到一个问题hibernate在执行sql时,总会提示表不存在。

Spring Boot + JPA(hibernate 5) 开发时,数据库表名大小写问题第1张

寻找之后发现,建表时,采用默认设置。hibernate会把大写统一转换成下划线加小写。且 mysql在linux下大小写敏感。

解决:

1. 尝试修改mysql的cnf文件,改成不区分大小写。修改完成之后发现问题并没有解决,还产生了新的问题,表名无论大小写都失败了。

2.数据库层面修改没有效果,表结构和表名不能修改,那只能通过代码实现来解决此问题了。

原来是Hibernate5.1相关配置变了。

参考:http://412887952-qq-com.iteye.com/blog/2315686

参考:http://stackoverflow.com/questions/32165694/spring-hibernate-5-naming-strategy-configuration

hibernate.ejb.naming_strategy将不再被支持,而是被替换成了两个属性:
hibernate.physical_naming_strategy
hibernate.implicit_naming_strategy

对于physical_naming_strategy有两个常用的配置:

org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy  
org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl

对于PhysicalNamingStrategyStandardImpl有DefaultNamingStrategy的效果,对于SpringPhysicalNamingStrategy有ImprovedNamingStrategy的效果。

最终将properties改成如下,成功恢复到了以前的配置

db1.mysql.jpa.hibernate.physical_naming_strategy=org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy

免责声明:文章转载自《Spring Boot + JPA(hibernate 5) 开发时,数据库表名大小写问题》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇第十三节、SURF特征提取算法mysql存储过程 详细注释下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

maven 命令小记

mvn help:system mvn clean compile mvn clean test                            测试 mvn clean package                    打包成jar mvn clean install mvn dependency:tree 列出jar之间依赖引入的jar ma...

[leveldb]0.源码编译及使用

一、LevelDB简介 LevelDB是Google开源的持久化KV单机数据库,具有很高的随机写,顺序读/写性能,但是随机读的性能很一般,也就是说,LevelDB很适合应用在查询较少,而写很多的场景。LevelDB应用了LSM (Log Structured Merge) 策略,lsm_tree对索引变更进行延迟及批量处理,并通过一种类似于归并排序的方式高...

mysql(4)—— 表连接查询与where后使用子查询的性能分析。

子查询就是在一条查询语句中还有其它的查询语句,主查询得到的结果依赖于子查询的结果。 子查询的子语句可以在一条sql语句的FROM,JOIN,和WHERE后面,本文主要针对在WHERE后面使用子查询与表连接查询的性能做出一点分析。 对于表连接查询和子查询性能的讨论众说纷纭,普遍认为的是表连接查询的性能要高于子查询。本文将从实验的角度,对这两种查询的性能做出验...

Sqlite数据库完整性检测

/************************************************************************************************* * 函数名称: IntegrityCheck * 功能描述: 数据库完整性检测 * 输入参数: 无 * 输出参数: 无 * 返 回 值: 0:完整...

spring boot 操作MySQL pom添加的配置

1 在项目中的pom.xml配置文件添加依赖 <!--MySQL依赖 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </depende...

Debian中安装MySQL服务器

在Debian中安装MySQL服务器是很方便的,使用apt-get命令即可完成。   apt-getinstall mysql-server mysql-client mysql-server是服务器程序,mysql-client是客户端程序。我们可通过客户端程序来管理服务器,也可通过一些开源 的GUI程序来维护服务器,如phpmyadmin,mysql...