Spring Framework/[인프런] 실전! QueryDSL

Chapter 01. QueryDsl 프로젝트 생성 및 환경 설정

계란💕 2023. 4. 9. 16:13

프로젝트 설정

  • dependency: Lombok, JPA, H2, starter
  • 프로젝트 설정: 빌드 실행 배포 => 빌드 도구 => Gradle => 둘다 IntelliJ로 설정한다. 
    • 이렇게 해야 자바로 바로 실행할 수 있어서 속도가 빠르다. 

 

  • builde.gradle 
    • QueryDSL  사용하기 위해 다음과 같이 추가한다. 
    • gradle => clean 
    • gradle => compileQuerydsl
    • 위 내용은  터미널로 다음과 같이 입력하는 것과 같다. 
      • ./gradlew clean compileQuerydsl
    • 메이븐의 경우는 다음과 같이 clean 한 다음(target 폴더를 삭제), compile를 실행한다. 실행하고 나면 target 폴더가 생성되면서 Q클래스가 새롭게 생성된다. 

 

java
열기

 

 

  • 정상적으로 적용되면 다음과 같이 Q 클래스가 자동 생성된다. 
    • Q 타입이 정상으로 동작한다. 

 

 

 

  • H2 데이터베이스를 설치한 다음, 윈도우 환경에서는 다음과 같이 bin 폴더 안에 있는 h2.bat 파일을 실행한다. 
    • cf) H2 데이터베이스는 Java 설치 및 세팅이 되어 있어야 사용 가능하다. 

 

 

  • yml 파일 설정
java
열기

 

 

  • 아래 창에서 저장 버튼을 한 번 눌러준 다음에 연결해야한다.

 

 

  • 기본 엔티티 생성
    • changeTeam()은 양방향 연관관계를 한 번에 처리한다. (해당 멤버를 매개변수로 넣은 팀으로 바꿔주고 상대 팀에도 해당 멤버를 추가해준다.)
    • 연관관계의 주인은 Member 테이블의 team이고 Team 테이블의 필드 members는 연관관계의 주인이 아니다. 따라서, Member 테이블의 team 만이 데이터베이스의 외래키 값을 변경 가능하고 반대편의 members는 읽기만 가능하다. 
java
열기

 

 

 

java
열기

 

 

 

  Ex) 데이터 확인 테스트

  • Member 클래스를 띄운 채로 ctrl + shift  + T 를 눌러서 Member 클래스에 대한 테스트 클래스를 만든다. 
  • (h2 데이터베이스를 띄우지 않은 상태로 애플리케이션을 실행하면 socket time out 오류가 난다. )
  • Spring Data JPA를 쓰지 않고 순수 JPA로 확인한다. 
java
열기

 

 

출처 -  https://www.inflearn.com/course/querydsl-%EC%8B%A4%EC%A0%84