2014-10-29 93 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

相關問題