如何让Spring Boot JPA生成驼峰式(camelCase)数据库表与列名?
解决Spring Data JPA生成MySQL驼峰命名表/列的问题
这是因为Spring Boot默认使用的SpringPhysicalNamingStrategy会自动把驼峰命名转换为下划线分隔的形式,和你的预期不符。要让JPA严格按照你在实体类中指定的驼峰名生成表和列,只需修改Hibernate的物理命名策略配置。
具体配置方式
1. 使用application.properties配置
在项目的application.properties文件中添加以下配置:
# 采用标准命名策略,直接使用实体类中指定的名称 spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
2. 使用application.yml配置
如果用的是YAML格式的配置文件,添加:
spring: jpa: hibernate: naming: physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
说明
- 配置
PhysicalNamingStrategyStandardImpl后,Hibernate会完全遵循你在@Table(name="xxx")和@Column(name="xxx")中指定的名称生成数据库对象,不会做任何自动转换。 - 如果你在实体类中没有显式指定
name属性,它会直接使用实体类名、属性名的原始驼峰形式作为表名、列名。 - 注意:MySQL默认对表名、列名大小写不敏感(具体取决于系统配置),如果需要严格区分大小写,可能需要调整MySQL的
lower_case_table_names参数,但一般不推荐,保持上述命名策略配置即可满足需求。
内容的提问来源于stack exchange,提问作者Something Nice
相关产品推荐
相关产品推荐

