기본 검색 쿼리 작성
List<User> result = queryFactory
.selectFrom(user)
.where(
user.roleEnum.eq(UserRoleEnum.NORMAL),
user.email.endsWith("gmail.com")
)
// 쿼리문을 실행
.fetch();
user 중에서 NORMAL 등급의 gmail.com 이메일을 가진 사용자를 조회하는 쿼리이다.
fetch()는 결과 리스트를 반환하며, fetchOne(), fetchFirst()로 단건 조회도 가능하다.
(단, 결과가 둘 이상이면 예외 발생)
결과 예시
앨리스 (alice@gmail.com)
찰리 (charlie@gmail.com)
검색 쿼리 작성 (정렬)
List<User> result = queryFactory
.selectFrom(user)
.orderBy(user.username.asc(), user.id.desc())
.limit(3)
.fetch();
사용자 이름은 오름차순, ID 내림차순 정렬 후 3명만 조회한다.
결과 예시
관리자
밥
앨리스
검색 쿼리 작성 (문자열 검색)
List<Post> result = queryFactory
.selectFrom(post)
.where(post.content.contains("여행"))
.fetch();
“여행” 키워드가 포함된 게시글(Post) 조회한다.
결과 예시
후쿠오카 여행 후기 (작성자: 앨리스)
검색 쿼리 작성 (논리 조합)
List<User> result = queryFactory
.selectFrom(user)
.where(
user.roleEnum.eq(UserRoleEnum.ADMIN)
.or(user.username.contains("밥"))
)
.fetch();
ADMIN 사용자 또는 이름에 “밥”이 포함된 사용자 조회한다.
결과 예시
관리자 (ADMIN)
밥 (NORMAL)
검색 쿼리 작성 (조인 검색)
List<Post> result = queryFactory
.selectFrom(post)
.join(post.user, user)
.where(user.username.eq("앨리스"))
.fetch();
“앨리스”가 작성한 게시글(Post) 조회한다.
결과 예시
후쿠오카 여행 후기
조호바루 맛집 탐방
싱가포르 출퇴근 일상
검색 쿼리 작성 (Fetch Join)
List<Post> result = queryFactory
.selectFrom(post)
.join(post.user, user).fetchJoin()
.fetch();
게시글과 작성자 정보를 한 번에 로딩한다.
결과 예시
List<Comment> comments = queryFactory
.selectFrom(comment)
.join(comment.post, post)
.where(post.content.eq("리제로 3기 감상평"))
.fetch();
검색 쿼리 작성 (댓글 검색)
List<Comment> comments = queryFactory
.selectFrom(comment)
.join(comment.post, post)
.where(post.content.eq("리제로 3기 감상평"))
.fetch();
"리제로 3기 감상평" 게시글의 모든 댓글을 조회한다.
결과 예시
리제로 명작이죠
검색 쿼리 작성 (페이징)
List<Post> page2 = queryFactory
.selectFrom(post)
.orderBy(post.id.asc())
.offset(5)
.limit(5)
.fetch();
게시글 목록을 5개씩 조회 (2페이지: 6~10번 게시글)한다.
결과 예시
6. QueryDSL 실무 적용기
7. JPA 성능 튜닝 방법
8. Docker로 배포 환경 만들기
9. 리제로 3기 감상평
10. 롤체 시즌10 덱 분석
QueryDSL 기본 메서드 정리

'💻 Backend > 이론 및 실습' 카테고리의 다른 글
| 복합 인덱스 (0) | 2026.03.31 |
|---|---|
| Index (0) | 2026.03.31 |
| QueryDSL 개념 및 적용 (0) | 2026.03.30 |
| VPC EC2 생성 (0) | 2026.03.10 |
| 클라우드 컴퓨팅 개념 정리 (On-Premise, IaaS, PaaS, SaaS) (0) | 2026.03.09 |