[QueryDSL] - 기본 문법

DreamJJW·2024년 1월 28일
0

공부 노트

목록 보기
17/18

Search (검색) 쿼리

member.username.eq("member1") // username = 'member1'
member.username.ne("member1") //username != 'member1'
member.username.eq("member1").not() // username != 'member1'
member.username.isNotNull() //이름이 is not null
member.age.in(10, 20) // age in (10,20)
member.age.notIn(10, 20) // age not in (10, 20)
member.age.between(10,30) //between 10, 30
member.age.goe(30) // age >= 30
member.age.gt(30) // age > 30
member.age.loe(30) // age <= 30
member.age.lt(30) // age < 30
member.username.like("member%") //like 검색
member.username.contains("member") // like ‘%member%’ 검색
member.username.startsWith("member") //like ‘member%’ 검색

Select (조회) 쿼리

// 리스트 조회
List<Member> fetch = queryFactory
 .selectFrom(member)
 .fetch();
 
// 단건 조회
Member findMember1 = queryFactory
 .selectFrom(member)
 .fetchOne();
 
// 처음 한 건 조회
Member findMember2 = queryFactory
 .selectFrom(member)
 .fetchFirst();
 
// 페이징에서 사용
QueryResults<Member> results = queryFactory
 .selectFrom(member)
 .fetchResults();
 
// count 쿼리로 변경
long count = queryFactory
 .selectFrom(member)
 .fetchCount();

Sorting (정렬) 쿼리

public void sort() {
	List<Member> result = queryFactory
    .selectFrom(member)
    .orderBy(member.age.desc(), member.username.asc())
    .fetch();
}

* desc(), asc() :  내림차순, 오름차순 정렬
* nullsLast(), nullsFirst() : null 데이터 순서 부여

집합 함수 쿼리

select
COUNT(m),  // 회원 수
SUM(m.age), // 나이의 합
AVG(m.age), // 평균 나이
MAX(m.age), // 최대 나이
MIN(m.age) // 최소 나이
from Member m
profile
간절한 사람

0개의 댓글