본문 바로가기

Programming!

hibernate 5 spring data jpa @Column 이슈

Spring boot 1.4.x 와 spring data jpa(MySql) 사용시 @Column(name="stockId") 와 같이 camelcase 형태로 지정 했을 경우, name의 속성이 무시되고 underscore형태의 "stock_id" 를 찾는 오류가 나타난다. 



hibernate 4.x 에서는 아래의 옵션으로 해결했지만, 5 부터는 해당 옵션이 수정되었다. 

spring.jpa.hibernate.naming.implicit-strategy= # Hibernate 5 implicit naming strategy fully qualified name.
spring.jpa.hibernate.naming.physical-strategy= # Hibernate 5 physical naming strategy fully qualified name.
spring.jpa.hibernate.naming.strategy= # Hibernate 4 naming strategy fully qualified name. Not supported with Hibernate 5.


각 항목에 커스텀 Strategy를 사용하거나, 제공되는 Strategy를 사용하면 위의 문제는 해결할 수 있다.

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