querydsl의 fetch문법이 자꾸 헷갈려서 정리해놓는다 !
fetch를 이용해서 querydsl 의 결과를 반환할수 있는데 여기서 여러가지 방법이 있다.
1) fetch()
리스트로 결과를 반환하는 방법이다. 만약에 데이터가 없으면 빈 리스트를 반환해준다.
List<Member> fetch = queryFactory
.selectFrom(member)
.fetch();
2) fetchOne()
단건을 조회할 때 사용한다. 결과가 없을때는 null 을 반환하고 결과가 둘 이상일 경우에는 NonUniqueResultException을 던진다.
Member fetchOne = queryFactory
.selectFrom(member)
.fetchOne();
3) fetchFirst()
처음의 한건을 가져오고 싶을때 사용한다.
주석에 있는 표현과 같은 표현이다.
Member fetchFirst = queryFactory
.selectFrom(QMember.member)
//.limit(1).fetchOne()
.fetchFirst();
4) fetchResults()
페이징을 위해 사용될 수 있다. 페이징을 위해서 total contents를 가져온다.
QueryResults<Member> results = queryFactory
.selectFrom(member)
.fetchResults();
5) fetchCount()
count 쿼리를 날릴 수 있다.
long count = queryFactory
.selectFrom(member)
.fetchCount();