2014-10-29 1 views
4

В настоящее время я сопоставляю новые объекты JPA с старой базой данных. Имена столбцов в базе данных имеют имена столбцов, разделенные символом подчеркивания типа «my_column_name».Как изменить формат по умолчанию JPA сгенерированных имен столбцов

Проблема заключается в том, что JPA по умолчанию использует случай с верблюдом.

// Will be 'myColumnName' in queries and generated databases 
private String myColumnName; 

Я знаю, что можно добавить @Column (имя = «..„) или @JoinColumn (имя =“...») о свойствах - но это означает, что я должен добавить его в каждый собственность во всех организациях.

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

Можно ли изменить поведение по умолчанию JPA использовать «my_column_name» вместо «myColumnName»?

ответ

0

Вы должны исследовать Implementing a NamingStrategy

+0

, который будет работать только в спящем режиме, и он также отметил его как OpenJPA –

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