Query DSL - 스프링 부트 설정

2022. 8. 5. 20:56·공부/JPA
반응형

출처 : 인프런 실전! QueryDSL

Query DSL게시글은 대부분 인프런의 김영한님의 강의인 '실전! Query DSL' 기반으로 내용을 정리했습니다.

 

스프링 부트 설정

  • application.yml 생성 및 설정

src/resources에 있던 application.properties 파일을 지우고 application.yml 파일을 생성 후 아래 코드를 작성한다.

spring:
  datasource:
    url: jdbc:h2:tcp://localhost/~/querydsl
    username: sa
    password:
    driver-class-name: org.h2.Driver

  jpa:
    hibernate:
      ddl-auto: create
    properties:
      hibernate:
#       show_sql: true
        format_sql: true

logging.level:
  org.hibernate.sql: debug
#    org.hibernate.type: trace

참고로 앞의 공백이 레벨 같은 개념이므로 잘 맞춰줘야 한다.

  • ddl-auto : create
    • 애플리케이션 로딩 시점에 DB에 만들어진 엔티티를 모두 drop처리하고 다시 새로 만드는 옵션
  • show_sql : true
    • 콘솔에 출력되는 sql을 가독성 좋게 System.out.println()으로 출력해준다.
  • org.hibernate.sql : debug 
    • 하이버네이트에서 logger를 통해 하이버네이트 실행 SQL을 남긴다.
    • 참고로 모든 로그 출력은 가급적 로거를 통해 남겨야 한다. 그러므로 show_sql은 주석처리.
insert 
into
    hello
    (id) 
values
    (?)
    

select
    hello0_.id as id1_0_ 
from
    hello hello0_

 

전에 만들었던 테스트 코드를 실행시킨 후 DB를 보면 데이터가 들어가 있지 않는다. TEST에서 Transactional 애노테이션만 사용했기 때문에 기본적으로 롤백을 해버린다. 그래서 @Commit 애노테이션을 추가해줘야 한다.

@SpringBootTest
@Transactional
@Commit
class QuerydslApplicationTests {

 

 

쿼리 파라미터 로그 남기기

위 SQL이 출력된 파라미터 부분에 물음표(?)가 있는 걸 볼 수 있다. 이 물음표 대신 진짜 값을 보고싶다면 아래 외부 라이브러리를 사용하면 된다.

  • build.gredle
implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.5.8'

이 외부 라이브러리는 시스템 자원을 사용하므로, 운영 시스템에 적용하려면 성능 테스트가 필수이다.

반응형
저작자표시 비영리 변경금지 (새창열림)
'공부/JPA' 카테고리의 다른 글
  • Query DSL - JPQL vs QueryDSL
  • Query DSL - 예제 도메인 모델
  • Query DSL - Query DSL 설정과 검증
  • Query DSL - 프로젝트 환경설정
데부한
데부한
어차피 할 거면 긍정적으로 하고 싶은 개발자
    반응형
  • 데부한
    동동이개발바닥
    데부한
  • 전체
    오늘
    어제
    • 분류 전체보기 (307)
      • 방통대 컴퓨터과학과 (27)
        • 잡담 (9)
        • 3학년1학기 (17)
      • 프로젝트 및 컨퍼런스 회고 (1)
        • 프로젝트 (4)
        • 한이음 프로젝트 (0)
        • 회고 (3)
      • 공부 (165)
        • Spring (37)
        • JPA (71)
        • 인프런 워밍업 클럽_BE (10)
        • Java (6)
        • React.js (27)
        • 넥사크로 (11)
        • 기타 (3)
      • 알고리즘 (85)
        • 알고리즘 유형 (10)
        • 알고리즘 풀이 (57)
        • SQL 풀이 (18)
      • 에러 해결 (13)
      • 잡담 (7)
        • 국비교육 (2)
        • 구매후기 (5)
        • 진짜 잡담 (0)
  • 블로그 메뉴

    • Github
    • Linkedin
    • 홈
    • 방명록
    • 글쓰기
    • 관리
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    react
    oracle
    토비의스프링부트
    운영체제
    백준
    기출문제
    JPA
    자바스크립트
    RESTful
    Java
    springboot
    코딩테스트
    방통대
    프론트엔드
    IT
    스프링부트
    에러해결
    Spring
    전자정부프레임워크
    MSA
    인프런
    SQL
    넥사크로
    QueryDSL
    개발자
    알고리즘
    SpringBoot를 이용한 RESTful Web Service 개발
    토이프로젝트
    프로그래머스
    egov
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
데부한
Query DSL - 스프링 부트 설정
상단으로

티스토리툴바