반응형
아무런 설정 없이 JPA 쿼리를 실행하는 경우, 쿼리 파라미터가 '?'로 찍히는 것을 확인할 수 있다.
쿼리 파라미터를 출력하기 위해선 어떻게 해야 할까?
1️⃣방법 1 - yml 코드 추가
application.yml 파일에 다음의 코드를 추가하여 쿼리 파라미터 로그를 남길 수 있다.
logging:
level:
org.hibernate.orm.jdbc.bind: trace
쿼리를 실행하는 테스트 파일을 실행하면, 쿼리 파라미터 로그가 출력되는 것을 확인할 수 있다.
Hibernate:
select
next value for member_seq
Hibernate:
insert
into
member
(username,id)
values
(?,?)
// 쿼리 파라미터 로그 출력
2023-05-27T16:38:01.688+09:00 TRACE 11992 --- [ main] org.hibernate.orm.jdbc.bind : binding parameter [1] as [VARCHAR] - [memberA]
2023-05-27T16:38:01.688+09:00 TRACE 11992 --- [ main] org.hibernate.orm.jdbc.bind : binding parameter [2] as [BIGINT] - [1
2️⃣방법 2 - 외부 라이브러리 이용
다음 링크의 외부 라이브러리를 이용할 수 있다.
https://github.com/gavlyukovskiy/spring-boot-data-source-decorator
P6Spy를 이용하려면 아래의 코드를 build.gradle에 추가하여 쿼리 파라미터 로그를 남길 수 있다.
implementation("com.github.gavlyukovskiy:p6spy-spring-boot-starter:${version}")
쿼리를 실행하는 테스트 파일을 실행하면, 쿼리 파라미터 로그가 출력되는 것을 확인할 수 있다.
Hibernate:
select
next value for member_seq
2023-05-27T16:46:34.924+09:00 INFO 28068 --- [ main] p6spy : #1685173594924 | took 5ms | statement | connection 4| url jdbc:h2:tcp://localhost/~/jpashop
select next value for member_seq
select next value for member_seq;
Hibernate:
insert
into
member
(username,id)
values
(?,?)
2023-05-27T16:46:35.194+09:00 INFO 28068 --- [ main] p6spy : #1685173595194 | took 0ms | statement | connection 4| url jdbc:h2:tcp://localhost/~/jpashop
insert into member (username,id) values (?,?)
insert into member (username,id) values ('memberA',1);
2023-05-27T16:46:35.212+09:00 INFO 28068 --- [ main] p6spy : #1685173595212 | took 0ms | commit | connection 4| url jdbc:h2:tcp://localhost/~/jpashop
;
반응형
'Java > Spring' 카테고리의 다른 글
[Spring Security] 소셜로그인 시 404 에러 해결 (0) | 2023.09.10 |
---|---|
[Spring] h2 데이터베이스를 사용해보자! (0) | 2023.06.19 |
[Spring] 서블릿(servlet)에 대해 알아보자 (0) | 2023.04.05 |
[Spring] 타임리프(Thymeleaf)에 대해 알아보자! (0) | 2023.04.01 |
[Spring] JPA에 대해 알아보자! (0) | 2023.03.31 |