JPA 表名大小写问题
Posted vipsoft
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JPA 表名大小写问题相关的知识,希望对你有一定的参考价值。
JPA 默认会将实体中的 TABLE_NAME 转成小写如
@Entity @Table(name = "EMPLOYEE") public class Employee { @Id private String id;
会报:java.sql.SQLSyntaxErrorException: Table ‘mysql.employee‘ doesn‘t exist 表名已经被转成了小写
可以添加一个策略解决此问题
package com.iron.config; import org.hibernate.boot.model.naming.Identifier; import org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl; import org.hibernate.engine.jdbc.env.spi.JdbcEnvironment; /** * Created by Jimmy on 2020/3/13. */ public class UpperTableStrategy extends PhysicalNamingStrategyStandardImpl { private static final long serialVersionUID = 1383021413247872469L; @Override public Identifier toPhysicalTableName(Identifier name, JdbcEnvironment context) { // 将表名全部转换成大写 String tableName = name.getText().toUpperCase(); return name.toIdentifier(tableName); } }
application.yml 配置文件中添加相应的配置,启用上面的策略
server: port: 8081 spring: jpa: show-sql: true hibernate: naming: physical-strategy: com.iron.config.UpperTableStrategy datasource: driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://172.17.127.53:3306/mysql?Unicode=true&characterEncoding=UTF-8 username: root password: 123
以上是关于JPA 表名大小写问题的主要内容,如果未能解决你的问题,请参考以下文章
当JPA遇上MySQL表名全大写+全小写+驼峰+匈牙利四风格
Spring Boot + JPA(hibernate 5) 开发时,数据库表名大小写问题
spring boot + JPA + MySql + Entity 表生成大写