Java 除非明确指定,否则如何在默认情况下将Spring数据JPA命名为camelCase到snake_case?

Java 除非明确指定,否则如何在默认情况下将Spring数据JPA命名为camelCase到snake_case?,java,hibernate,spring-boot,spring-data-jpa,naming,Java,Hibernate,Spring Boot,Spring Data Jpa,Naming,默认情况下,我的Spring Boot项目通过将名称从camelCase转换为snake_case(例如从fooBar转换为fooBar),将实体属性映射到表列 我正在处理一个现有的数据库,其中实体属性名称保留为表列名的原样(例如从fooBar到fooBar),因此我尝试使用@column注释来显式指定名称: @列(name=“fooBar”) 私人字符串fooBar; 这不管用。我听从了别人的建议: spring.jpa.hibernate.naming.physical strategy=

默认情况下,我的Spring Boot项目通过将名称从camelCase转换为snake_case(例如从
fooBar
转换为
fooBar
),将实体属性映射到表列

我正在处理一个现有的数据库,其中实体属性名称保留为表列名的原样(例如从
fooBar
fooBar
),因此我尝试使用
@column
注释来显式指定名称:

@列(name=“fooBar”)
私人字符串fooBar;
这不管用。我听从了别人的建议:

spring.jpa.hibernate.naming.physical strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
我的
@Column
现在已被成功考虑,但在没有
@Column
注释的属性上,我正在丢失camelCase到snake\u case隐式转换


除非在
@列
注释中明确指定,否则默认情况下如何从camelCase转换为snake\u case?

从Hibernate 5开始,似乎不再支持使用camelCase(Java中的命名约定)将属性名称自动转换为snake\u case。但是,您可以编写自己的NamingStrategy实现,具体就是这样做的。
请检查它是如何完成的。

@YCF\u L MySQL。正如我所说,
@Column
现在已经成功运行,但是隐式转换不再是snake\u case。是的,我理解,只是好奇你为什么要这样做?@YCF\L我认为snake\u case对于SQL实体(某种非官方约定)更为常见,所以我添加的新实体应该是snake\u case,但我仍然需要处理不遵循此约定的遗留表。我们将在第二阶段重命名现有表。