Java 如何更改JPA生成的列名的默认格式

Java 如何更改JPA生成的列名的默认格式,java,hibernate,jpa,persistence,openjpa,Java,Hibernate,Jpa,Persistence,Openjpa,目前,我正在将新的JPA实体映射到一个旧的数据库。数据库中的列名具有用下划线分隔的列名,如“my_column_name” 问题是JPA默认使用camel case // Will be 'myColumnName' in queries and generated databases private String myColumnName; 我知道可以在属性上添加@Column(name=“…”)或@JoinColumn(name=“…”),但这意味着我必须将其添加到所有实体中的每个属性中

目前,我正在将新的JPA实体映射到一个旧的数据库。数据库中的列名具有用下划线分隔的列名,如“my_column_name”

问题是JPA默认使用camel case

// Will be 'myColumnName' in queries and generated databases
private String myColumnName;
我知道可以在属性上添加@Column(name=“…”)或@JoinColumn(name=“…”),但这意味着我必须将其添加到所有实体中的每个属性中

@Column(name = "my_column_name")
private String myColumnName;

是否可以将JPA的默认行为更改为使用“my_column_name”而不是“myColumnName”

您需要调查

不幸的是,JPA没有提供任何全局命名策略。因此,您应该在每个属性上使用@Column注释。但是您可以使用Hibernate来实现这个目标。请参阅。

将以下行添加到您的应用程序。属性

spring.jpa.hibernate.naming.implicit-strategy=
   org.hibernate.boot.model.naming.ImplicitNamingStrategyLegacyJpaImpl
spring.jpa.hibernate.naming.physical-strategy=
   org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
根据下面的链接,我进行了测试,它成功了:


这只在Hibernate中有效,他还将其标记为OpenJPA