Spring Framework/QueryDSL

Spring Framework/QueryDSL

[Querydsl] QueryDSL @QueryProjection 프로젝션 활용법 : DTO, Bean, Field, Constructor 사용법

Querydsl을 통해 쿼리문을 작성하면서 프로젝션 하는 방법에 대해 정리하고자 합니다.그 중 Type Safe 체크와 immutable 객체 선언이 가능한 생성자 + @QueryProjection을 사용하고 있습니다.Projection이란데이터베이스에서 프로젝션은 주어진 릴레이션에 대해 각 레코드에서 원하는 애트리뷰트 집합으로만 이루어진 새로운 릴레이션을 만드는 단일 연산자입니다.Querydsl에서 Projection 다루기프로젝션 대상이 1개List result = queryFactory .select(member.username) .from(member) .fetch();프로젝션 대상이 하나인 경우 타입을 명확하게 지정할 수 있습니다.프로젝션 대상이 2개 이상이..

Spring Framework/QueryDSL

[QueryDsl] QueryDsl groupBy 여러 개 적용하기

Spring Data Jpa를 사용하는 중 Kindergarten, Recruit, Lottery의 3개의 엔티티를 통해 2개의 조건을 그룹핑하고 Count() 해야 하는 쿼리가 필요했습니다.이를 JPA를 작성하는 경우 긴 JPQL 코드로 가독성이 떨어지고 제대로 작성되었는지 컴파일 시점에서 문법 오류가 불가능하다고 생각되어, QueryDsl을 통해 위 문제를 해결하면서 필요한 쿼리를 생성하였습니다.배운 점ORM을 통한 2개의 그룹핑과 개수 카운트 및 총 개수 구하기실제 SQL 쿼리 작성과 공식문서를 통해 지원하는 기능 적용하여 해결하기불변성 객체를 유지하면서 Response DTO로 파싱 하기쿼리 확인하기 실제 SQL 작성select r.kindergarten_id, r.age_class, count(..

Spring Framework/QueryDSL

[QueryDsl] QueryDsl 페이징, 검색, 필터링 쿼리 구현 - 페이징 최적화, BooleanExpression

배운 점 및 느낀 점기존에는 편리한 Spring Data JPA만 사용하다가 “가독성 측면”, “컴파일 시점에서 오류 확인”, “조건 메서드 재사용” 등 여러 장점을 가진 QueryDSL을 사용하게 되었습니다. 페이징, 검색, 필터링 조건을 적용한 쿼리문을 작성하면서 QueryDSL을 사용하는 이유와 장점을 느꼈습니다. 이를 통해 상황에 따라 효율적으로 Spring Data JPA와 QueryDSL을 사용할 수 있게 되었습니다.익힌 QueryDSL1. PageableExecutionUtils을 통해 Count 쿼리 최적화2. 검색 및 필터링 조건 적용3. DTO 클래스로 한 번에 변환Controller: 검색, 필터링, 페이징 API@GetMapping("/recruits/applications")pub..

kylo
'Spring Framework/QueryDSL' 카테고리의 글 목록 (2 Page)