Querydsl 설정

개발하는 도비·2023년 5월 6일

JPA

목록 보기
11/13
post-thumbnail

Querydsl 설정

  • sping boot 2.6이상

  • build.gradle 작성

    buildscript {
        ext {
            queryDslVersion = "5.0.0"
        }
    }
    
    plugins {
        id 'java'
        id 'org.springframework.boot' version '2.7.11'
        id 'io.spring.dependency-management' version '1.0.15.RELEASE'
        // querydsl 추가
        id "com.ewerk.gradle.plugins.querydsl" version "1.0.10"
    
    }
    
    group = 'study'
    version = '0.0.1-SNAPSHOT'
    sourceCompatibility = '11'
    
    configurations {
        compileOnly {
            extendsFrom annotationProcessor
        }
    }
    
    repositories {
        mavenCentral()
    }
    
    dependencies {
        implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
        implementation 'org.springframework.boot:spring-boot-starter-web'
        //querydsl 추가
        implementation "com.querydsl:querydsl-jpa:${queryDslVersion}"
        annotationProcessor "com.querydsl:querydsl-apt:${queryDslVersion}"
    
        compileOnly 'org.projectlombok:lombok'
        runtimeOnly 'com.h2database:h2'
        annotationProcessor 'org.projectlombok:lombok'
        testImplementation 'org.springframework.boot:spring-boot-starter-test'
    
        //테스트에서 lombok 사용
        testCompileOnly 'org.projectlombok:lombok'
        testAnnotationProcessor 'org.projectlombok:lombok'
    }
    
    tasks.named('test') {
        useJUnitPlatform()
    }
    
    //querydsl 추가 시작
    def querydslDir = "$buildDir/generated/querydsl"
    querydsl {
        jpa = true
        querydslSourcesDir = querydslDir
    }
    sourceSets {
        main.java.srcDir querydslDir
    }
    configurations {
        querydsl.extendsFrom compileClasspath
    }
    compileQuerydsl {
        options.annotationProcessorPath = configurations.querydsl
    }
    //querydsl 추가 끝
    
  • intelliJ 설정

      1. 좌측 gradle 클릭
      1. querydsl -> tasks -> other -> compileQuerydsl
      1. build -> generated -> querydsl 폴더에 정상적으로 컴파일 되었는지 확인
      • def querydslDir = "$buildDir/generated/querydsl" 설정으로 인해 build 하위에 생성됨.
  • DB 설정(.yml파일)

    • resouces/application.yml
      • 기존 application.properties 삭제 후 생성
spring:
  datasource:
    url: jdbc:h2:tcp://localhost/~/test
    username: //username 입력
    password: // password가 없을 경우 비워둠. 
    driver-class-name: org.h2.Driver
  jpa:
    hibernate:
      ddl-auto: create
    properties:
      hibernate:
        format_sql: true
        use_sql_comments: true // Querydsl 실행시 JPQL 같이 볼수 있음.
logging.level:
  org.hibernate.SQL: debug

참조

  • 인프런 : 실전! Querydsl
  • 링크
profile
도비의 양말을 찾아서

0개의 댓글