fetch()
: 리스트 조회, 데이터 없으면 빈 리스트 반환
fetchOne()
: 단 건 조회
- 결과가 없으면 :
null
- 결과가 둘 이상이면 :
com.querydsl.core.NonUniqueResultException
fetchFirst()
: limit(1).fetchOne()
fetchResults()
: 페이징 정보 포함, total count 쿼리 추가 실행
fetchCount()
: count 쿼리로 변경해서 count 수 조회
실습
@Test
public void resultFetch() {
List<Member> fetch = queryFactory
.selectFrom(member)
.fetch();
Member fetchOne = queryFactory
.selectFrom(member)
.where(member.username.eq("member1"))
.fetchOne();
Member fetchFirst = queryFactory
.selectFrom(member)
.fetchFirst();
QueryResults<Member> results = queryFactory
.selectFrom(member)
.fetchResults();
results.getTotal();
results.getResults();
long fetchCount = queryFactory
.selectFrom(member)
.fetchCount();
}
- 페이징용 count 쿼리는 select 구절만 달라진다.
- fetchResult는 count쿼리를 심플하게 쓰고 싶을 때 이것을 쓰면 안된다.
- 불필요한 join이 있을 수 있기 때문에
- 쿼리 2번을 따로 날려야 한다.