JPA 를 공부하면, 아래와 같은 설정을 많이 보게됩니다.
아래 설정은 JPA 에서 실행하는 쿼리를 IDE console 창에 출력해서 쿼리를 확인하기 위해 사용합니다.
# application.yml
spring:
jpa:
show-sql: true
properties:
hibernate:
format_sql: true
use_sql_comments: true
logging:
level:
org.hibernate.type: trace
위 처럼 application.yml(혹은 application.properties) 를 적용하면, 아래처럼 JPA 에서 발생하는 쿼리와 파라미터를 볼 수 있습니다.
그런데.... 당연히 이렇게 알고... 새로운 프로젝트에 동일하게 세팅했음에도.... 파라미터 바인딩 로그가 찍히지 않는 것이었습니다...
분명 insert 쿼리가 나갔고, ? 로 파라미터 바인딩도 표시되는데 앞선 설정대로 적용하면 로그가 찍히지 않는 것이었습니다.
오타인가?? yml 파일인데 들여쓰기를 잘못했나??(yml파일은 들여쓰기가 매우매우매우 중요합니다!!) 등등 많은 삽질 끝에...
어떤 엄청나신 분의 블로그를 보고 원인을 알아버렸습니다.
출처 : https://sundries-in-myidea.tistory.com/151#google_vignette
위 블로그 필자분께서 말씀하신 원인은... JPA의 구현체인 hibernate 가 SpringBoot3 버전에 맞게 버전을 올리면서 로깅 체제를 변경했다는 것입니다...! (위 포스팅 너무 잘 써주셔서 전 숟가락만 얹겠습니다...)
그래서 결론적으로 아래처럼 설정을 변경해주었습니다.
# application.yml
spring:
jpa:
show-sql: true
properties:
hibernate:
format_sql: true
use_sql_comments: true
logging:
level:
org.hibernate.orm.jdbc.bind: trace # 이 부분이 변경되었습니다! ㅠ
그랬더니 아래처럼 딱!! 파라미터가 잘 출력되는 것을 확인할 수 있었습니다.
'DB&JPA' 카테고리의 다른 글
[MySQL] 트랜잭션 격리수준 (0) | 2024.03.07 |
---|---|
[MySQL] 계정 생성 및 권한 부여, 그리고 역할 (0) | 2024.02.06 |
[JPA] @AttributeOverrides 와 @Embedded 로 간결한 도메인 객체 만들기 (0) | 2023.07.06 |
[QueryDSL] SpringBoot3 버전 QueryDSL 설정하기 (0) | 2023.06.30 |
댓글