QueryParameter - Sort/search?category=book&price=1000&page=0&size=10&sort=id,asc&sort=price,desc 정렬 조건은 queryparameter를 통해 주로 전달합니다.ex) sort=id,asc- 위 코드는 id 값을 기준으로 오름차순 정렬을 의미합니다. 복수 개의 정렬은 단일 조건이 여러 번 전달받는 것과 같습니다.ex) sort=id,asc&sort=price,desc querydsl에서 정렬 조건을 주기 위해 2가지 방법이 있습니다.QEntity.field.asc() / QEntity.field.desc()첫 번째는 정적인 방법으로 QEntity.field.asc() / QEntity.field.desc() 방법이 있습니다.ret..
JPAExpressionTo create a subquery you use the static factory methods of JPAExpressions. examplequeryFactory.selectFrom(department) .where(department.size.eq( JPAExpressions.select(d.size.max()).from(d))) .fetch(); where 절에 서브쿼리 적용하기 (eq)@Testpublic void subQuery() throws Exception { QMember memberSub = new QMember("memberSub"); List result = queryFactory .selectFrom(member)..
Querydsl을 통해 쿼리문을 작성하면서 프로젝션 하는 방법에 대해 정리하고자 합니다.그 중 Type Safe 체크와 immutable 객체 선언이 가능한 생성자 + @QueryProjection을 사용하고 있습니다.Projection이란데이터베이스에서 프로젝션은 주어진 릴레이션에 대해 각 레코드에서 원하는 애트리뷰트 집합으로만 이루어진 새로운 릴레이션을 만드는 단일 연산자입니다.Querydsl에서 Projection 다루기프로젝션 대상이 1개List result = queryFactory .select(member.username) .from(member) .fetch();프로젝션 대상이 하나인 경우 타입을 명확하게 지정할 수 있습니다.프로젝션 대상이 2개 이상이..
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(..