[Spring boot] JPA에서 대문자 테이블 인식 실패 문제

    내부적으로 사용하는 MySQL의 테이블이 대문자로 되어 있었고, 이를 Spring boot의 JPA를 활용하여 접근을 하고자 하였다. Entity와 Repository를 만들고, 이제 JPA를 연결하려 시도를 하였는데 다음과 같은 에러가 발생하였다.

     

    에러 화면

    table doesn't exist

     

    에러를 보면, gpt_member라는 테이블이 없다고 나오는데 내가 만든 테이블의 명칭은 대문자로 "GPT_MEMBER"라는 테이블이었다. 즉, 내부적으로 소문자로 테이블을 호출하고 있다는 것이었다.

     

    대문자로 세팅된 Entity

     

    Entity 클래스를 보면, 분명 대문자로 어노테이션이 되어 있는 것을 확인할 수 있다보니, 내부적으로 소문자로 치환해서 변환하는 것 같아서 ChatGPT에게 문의를 해도 이해를 하지 못하는 것 같았다.

     

    문제 해결

    구글링해본 결과 이와 같은 JPA 문제를 해결하기 위해서는 application.properties에 다음과 같은 설정을 추가해야 한다.

     

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

     

    위와 같이 설정을 추가 한 후, 페이지를 다시 호출해 보니

     

     

    다음과 같이 정상적으로 연결이 되는 것을 확인할 수 있었다.

    반응형

    댓글

    Designed by JB FACTORY