2014-10-29 42 views
4

目前我正在将新的JPA实体映射到旧的数据库。数据库中的列名具有用'my_column_name'等下划线分隔的列名。如何更改JPA生成的列名的默认格式

问题是JPA默认使用骆驼大小写。

// 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'?

回答

2

不幸的是JPA不提供任何全球性的命名策略。所以你应该在每个属性上使用@Column注解。但是你可以使用Hibernate来实现这个目标。见Hibernate documentation

1

以下行添加到您的application.properties

spring.jpa.hibernate.naming.implicit-strategy= 
    org.hibernate.boot.model.naming.ImplicitNamingStrategyLegacyJpaImpl 
spring.jpa.hibernate.naming.physical-strategy= 
    org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl 

根据下面的链接,我测试和它的工作:

Spring Boot + JPA : Column name annotation ignored

相关问题