[JPA] Spring boot 사용 시 쿼리 파라미터 물음표로 나오는 현상 해결

YJ KIM·2024년 2월 29일
post-thumbnail

기본적으로 JPA를 사용할 때 별 다른 설정이 없다면 쿼리 값은 ?로 나타나게 된다.
이때, ? 값을 따로 확인하기 위해 application.yml에 logging 설정을 해주는 것이 일반적이다.

하지만 원래 하던 방식대로 logging 설정을 한 결과 ?값에 해당하는 값을 확인할 수 없었다.


logging:
  level:
    #org.hibernate.type.descriptor.sql: TRACE
    #org.hibernate.type: TRACE

이는 hibernate의 버전 때문이다. Spring boot 3.x를 사용하면서 hibernate6를 사용하게 되었고 (현재 Spring Data JPA 3.x가 hibernate 6를 사용한다.) 버전이 변경되어 기존에 있던 설정으로는 쿼리 파라미터를 확인할 수 없다.

위 코드 중 주석처리 된 두 값 모두 쿼리 파라미터 로깅이 되지 않는다.

logging:
  level:
    org.hibernate.orm.jdbc.bind: trace

위와 같이 변경하면 쿼리 파라미터를 확인할 수 있다.


해당 문제가 버전 문제일 줄은 생각하지 못했다. 뭔가 설정이 잘못되었다고 생각해서 이리저리 변경했음. 앞으로 문제가 해결되지 않을 땐 코드나 설정보다 현재 프로젝트의 구성, 버전도 고려해야 함을 알게되었다~!

<참고 문서>
https://stackoverflow.com/questions/74862254/how-to-log-sql-statements-with-query-param-values-in-spring-boot-3-hibernate-6/74862954#74862954

profile
모르면 쓰지 말고 쓸 거면 알고 쓰자

0개의 댓글