본문 바로가기

[IT]/Querydsl4

[Query DSL] package com.querydsl.core.types does not exist Q-Type Error : package com.querydsl.core.types does not exist 얼마전에 발생한 Q-Type 에러가 또 다시 발생했다.. @Builder를 사용하면서 해결했었는데,이번에는 Lombok 어노테이션을 인식하지 못하는 문제가 발생했다. 에러메세지로 구글링 하던 중 동일한 문제로 어려움을 겪는 케이스를 발견했다! www.inflearn.com/questions/23530 gradle 6.0 이상 버전과 lombok사이에 호환성 문제가 있는 것 같다. plugin 부분에 id "io.franzbecker.gradle-lombok" version "3.0.0" 를 추가하니 정상적으로 동작했다. franzbecker 는 lombok 어노테이션의 프로세스를 단순화하는 플러.. 2021. 4. 17.
[QueryDSL] Query DSL 기본문법 JPAQueryFactory 클래스이름에 Q가 붙은 이상한(?) 것을 만든 것처럼 Query DSL은 EntityManager말고도 한 가지가 더 필요하다. JPAQueryFactory jpaQueryFactory = new JPAQueryFactory(em); 위와같이 선언해서 사용한다. Test 코드에서 활용한다면, 다음과 같이 사용하면 모든 테스트 메소드에서 초기화 없이 사용할 수 있다. @Autowired EntityManager em; JPAQueryFactory queryFactory; @BeforeEach public void createQF() { queryFactory = new JPAQueryFactory(em); } 기본 Q-Type 활용 다음은 Q클래스 인스턴스를 사용하는 2가지 방.. 2021. 3. 26.
[QueryDSL] JPQL vs Query DSL SQL과 오타 Mybatis, JDBC Template, JPQL 은 모두 쿼리문을 String 형식으로 직접 작성해서 구현하게 된다. 심지어 Spring Data JPA도 때때로 NativeQuery로 작성해야 한다. 백엔드 개발 경험이 한 번이라도 있다면, 쿼리를 작성하다가 오타가 난 경험이 있을 것이다. String으로 이뤄져 있기에 컴파일 단계에서 디버깅이 불가능하다. 그 말은 에러가 발생해도 띄어쓰기를 잘못 한 건지 대소문자를 잘못 쓴건지 알 수가 없다는 말이다. QueryDSL은 자바코드로 쿼리를 만들기 때문에 컴파일 시점에서 오류를 잡을 수 있고, 메서드 형식으로 작성하기 때문에 IDE 코드 어시스턴트의 도움도 받을 수 있다. 특히 현업에서 여러 번의 Join과 동적쿼리를 작성할 때, 그 진.. 2021. 3. 26.
[QueryDSL] 인텔리제이 환경설정 기본 환경 JAVA 11 Gradle InteliJ Community Edition 프로젝트 생성 스프링 부트 스타터(https://start.spring.io/) 사용기능 : Spring Web, Spring Data JPA, Lombok SpringBoot Version : 2.4.4 이번 포스팅에서는 DB 관련 설정은 건너뛰고 Query DSL 설정만 하도록 하겠습니다. build.gradle에 Query DSL 관련 내용을 추가해야 한다. 하기 전에 일단 SpringBoot가 정상 동작하는지 확인 후 진행하는 것을 추천한다! 우선 가장 위 plugin에 한 줄. plugins { id 'org.springframework.boot' version '2.4.4' id 'io.spring.depend.. 2021. 3. 26.
728x90