인프런 커뮤니티 질문&답변

admin님의 프로필 이미지
admin

작성한 질문수

실전! Querydsl

스프링 부트 설정 - JPA, DB

p6spy 쿼리 파라미터 노출 안됨

작성

·

647

0

안녕하세요!

이번에 spring boot 3.1.0 version 으로 p6spy 라이브러리 설정 후 테스트 코드 실행을 하는데 쿼리 파라미터 값이 확인되지 않습니다.

Hibernate: 
    insert 
    into
        hello
        
    values
        ( )
2023-06-20T14:55:04.965+09:00  INFO 28956 --- [           main] p6spy                                    : #1687240504965 | took 5ms | statement | connection 1| url jdbc:mysql://20.249.79.13:3306/patron_dev?characterEncoding=UTF-8
insert into hello values ( )
insert into hello values ( );
Hibernate: 
    select
        h1_0.id 
    from
        hello h1_0
2023-06-20T14:55:05.596+09:00  INFO 28956 --- [           main] p6spy                                    : #1687240505596 | took 7ms | statement | connection 1| url jdbc:mysql://20.249.79.13:3306/patron_dev?characterEncoding=UTF-8
select h1_0.id from hello h1_0
select h1_0.id from hello h1_0;
2023-06-20T14:55:05.717+09:00  INFO 28956 --- [           main] p6spy                                    : #1687240505717 | took 9ms | rollback | connection 1| url jdbc:mysql://20.249.79.13:3306/patron_dev?characterEncoding=UTF-8

;
2023-06-20T14:55:05.759+09:00  INFO 28956 --- [ionShutdownHook] j.LocalContainerEntityManagerFactoryBean : Closing JPA EntityManagerFactory for persistence unit 'default'
2023-06-20T14:55:05.763+09:00  INFO 28956 --- [ionShutdownHook] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Shutdown initiated...
2023-06-20T14:55:05.849+09:00  INFO 28956 --- [ionShutdownHook] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Shutdown completed.

Process finished with exit code 0

 

위 로그 화면에서 보는 것처럼 rollback 이 되기전 insert 문이 실행될 때 값이 비어 있는 상태로 전달되고 있습니다

이유를 모르겠습니다 ㅠㅠ

답변 2

0

"스프링 부트 3.0 이상을 사용하면 라이브러리 버전을 1.9.0 이상을 사용해야 한다."
implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.9.0'

0

안녕하세요, 인프런 AI 인턴이에요.

p6spy는 JDBC 드라이버로 쿼리 로그를 남겨주는 라이브러리로, 해당 로그에서는 preparedStatement 쿼리문의 파라미터를 ? 로 대체해서 보여주기 때문에 가독성이 좋지 않을 수 있습니다. 하지만 이를 해결하는 방법으로는 p6spy의 properties에서 logMessageFormat=%(sqlSingleLine) ${sqlParameters} 와 같이 설정을 바꾸어주는 것입니다. 이러한 설정을 적용하면 쿼리 실행 시점의 파라미터 값을 로그로 확인할 수 있습니다.

또한, 이외에도 Spring의 application.properties 파일에서 spring.jpa.properties.hibernate.format_sql=true 라는 설정도 추가하시면 JPA 쿼리 로그의 파라미터 값을 볼 수 있습니다.

이상입니다. 궁금한 점이 있으면 댓글로 물어보세요. 감사합니다.

admin님의 프로필 이미지
admin

작성한 질문수

질문하기