개요
결과 조회
@Test
void resultFetch() {
//given
QMember member = QMember.member;
//when
List<Member> fetch = jpaQueryFactory
.selectFrom(member)
.fetch();
Member fetchOne = jpaQueryFactory
.selectFrom(member)
.fetchOne();
Member fetchFirst = jpaQueryFactory
.selectFrom(member)
// .limit(1).fetchOne();
.fetchFirst();
QueryResults<Member> results = jpaQueryFactory
.selectFrom(member)
.fetchResults();
long total = results.getTotal();
List<Member> content = results.getResults();
long fetchCount = jpaQueryFactory
.selectFrom(member)
.fetchCount();
}
- fetch() : 리스트 조회, 데이터 없으면 빈 리스트 반환
- fetchOne() : 단 건 조회
- 결과가 없으면 : null
- 결과가 둘 이상이면 : com.querydsl.core.NonUniqueResultException
- fetchFirst() : limit(1).fetchOne()
- fetchResults() : 페이징 정보 + 리스트 조회, total count 쿼리 추가 실행 (
Deprecated)
- 복잡하고 성능이 중요한 페이지에서는 쓰면 x
- 그럴 때는 조회 쿼리, 카운터 쿼리를 따로 날려야 함
- fetchCount() : count 쿼리로 변경해서 count 수 조회 (
Deprecated)