본문 바로가기

QueryDSL3

Querydsl 주요 내용 정리 Querydsl을 사용하면 컴파일 시점에 SQL 오류를 잡을 수 있음 Q클래스(타입)를 직접 생성(new)하거나 이미 생성돼 있는 객체를 사용하면 됨 cf) Q클래스는 메타모델 클래스라고도 함. 이는 Criteria API나 Querydsl에서 보편적으로 쓰이는 용어. 보통은 생성된 객체 사용하고, 같은 테이블을 조인해야 하는 경우에만 직접 작성 사용 방법(단건 조회) JPAQueryFactory queryFactory; // 직접 생성하거나 스프링을 통해 주입 queryFactory.select(Q타입).from(Q타입).where(Q타입.필드.eq(조건)).fetchOne(); queryFactory.selectFrom(Q타입).where(Q타입.필드.eq(조건)).fetchOne(); queryFa.. 2024. 3. 27.
Querydsl 사용을 위한 build.gradle 설정하기 Gradle + JPA + Querydsl 사용을 위해 build.gradle을 작성할 때 많은 경우, 플러그인을 추가하여 사용한다. 특히, 인프런 김영한 님 등 JPA를 전파하시는 분들의 강의 내용에 플러그인을 사용하여 설정하는 방법이 나와 있어서 구글 검색 내용 중 다수가 그렇게 사용하고 있다. 그러나 해당 방법에는 문제가 있다. (아래 프로젝트는 JDK 17, Spring Boot 3.x를 사용합니다.) Bad Case plugins { id 'java' id 'org.springframework.boot' version '3.0.6' id 'io.spring.dependency-management' version '1.1.0'.. 2023. 5. 14.
QueryDSL 정리 JPA를 사용하면서 동적 쿼리를 위해 QueryDSL을 사용하기로 결정하면서 QueryDSL을 공부하기 시작했다. 공부한 내용을 간단히 정리해본다. QueryDSL은 JPA 사용 시 SQL처럼 쿼리를 작성할 수 있게 해주고 복잡한 쿼리와 동적 쿼리를 쉽게 사용할 수 있도록 도와주는 프레임워크이다. 런타임이 아니라 컴파일 타임에 오류를 잡을 수 있다. QueryDSL 사용시 'Q + 엔티티 이름' 형태의 Q class가 생성된다. Spring DataJpa와 다르게 Repository 클래스를 직접 만들어 사용한다. Repository 클래스에는 EntityManager와 QueryFactory를 주입하여 사용한다. 쿼리 중 where 조건 절 사용 시 Predicate를 사용한다. 2022. 7. 3.
728x90