본문 바로가기

QueryDSL9

QueryDsl 페이징 처리 이번 포스팅에서는 Springboot + Querydsl을 활용한 pageing 처리를 어떻게 하는지 살펴보겠습니다. DTO 설계 Request DTO 설계 조회 조건과 페이징 요청을 담은 객체를 설정합니다. 이때, 페이징 속성은 공통을 사용하기 위해 상속을 받습니다. @Data @NoArgsConstructor public class MemberSearchCond extends PageRequestDto { private String username; private String teamName; private Integer ageGoe; private Integer ageLoe; } PageRequestDto 클래스는 페이징 처리를 위한 요청 데이터 속성을 설정합니다. 이 클래스는 클라이언트로 부터 페.. 2024. 4. 1.
QueryDsl에서 함수 사용 Expressions 클래스는 SQL 함수의 다양한 표현식을 Java 코드로 직접 사용할 수 있으며, JPA와 같이 Dialect(방언)에 등록된 내용만 호출할 수 있습니다. QueryDsl의 Expressions 클래스에서 자주 사용되는 다양한 함수의 사용 예시를 소개합니다. @Test void Expressions_사용() { List result = queryFactory .select( Expressions.currentDate().stringValue() .concat(" ") .concat(Expressions.currentTime().stringValue()).as("currentDate"), // member.username.concat(member.age.stringValue()) Exp.. 2024. 3. 27.
QueryDsl 동적쿼리 작성 방법 QueryDsl은 자바 개발자들 사이에서 꾸준히 인기를 끌고 있는 라이브러리 중 하나입니다. SQL, JPA 등 다양한 쿼리의 타입 안전성을 보장하며 Java 코드로 직접 작성할 수 있게 도와줍니다. 이 글에서는 QueryDsl의 강력한 기능 중 하나인 동적 쿼리 작성 방법에 대해서 알아봅니다. 동적 쿼리는 어플리케이션 실행 중에 쿼리 조건이 결정되는 경우에 매우 유용합니다. 예를 들어, 사용자의 입력 값에 따라 검색 조건이 바뀌어야 할 때 이를 쉽게 처리할 수 있습니다. 동적 쿼리란? 동적 쿼리는 실행 시점에 어떤 조건을 쿼리에 포함할지 결정하는 쿼리 입니다. 예를 들어, 검색 폼에 여러 조건을 입력하고, 이 중 일부만 선택적으로 적용하여 결과를 필터링해야 하는 상황이 있다면, 동적 쿼리가 필요하게 됩.. 2024. 3. 26.
QueryDsl 프로젝션 결과 반환 프로젝션 결과 반환은 데이터베이스로 부터 조회된 데이터를 어플리케이션에서 사용하기 위한 특정 형식의 객체나 구조를 매핑하는 과정입니다. 이 과정을 통해, 전체 데이터 대신 필요한 데이터만 포함하는 객체를 반환할 수 있습니다. 단일 필드 프로젝션 단일 필드를 조회할 경우는 해당 필드의 type를 선언하면 됩니다. @Test void 단일_필드_프로젝션() { List result = queryFactory .select(student.studentName) .from(student) .where(student.score.goe(10)) .fetch(); assertThat(result.size()).isEqualTo(4); } 다중 필드 프로젝션 Tuple 사용하기 다중 필드를 조회하려면, Tuple를 사.. 2024. 3. 25.