Spring QueryDsl fetch(), fetchOne(), fetchFirst()
- fetch() : 리스트로 결과를 반환하는 방법. (만약에 데이터가 없으면 빈 리스트를 반환)
- fetchOne()
- fetchOne()은 getSingleResult(query)를 반환한다.
- getSingleResult()는 결과가 여러 건일 때 NonUniqueResultException을 throw한다.
- 이로 인해, fetchOne()을 사용하게 되면 결과가 여러 건이면 NonUniqueResultException이 발생한다.
- fetchFirst()
- fetchFirst()는 limit(1).fetchOne()을 반환한다.
- 즉, limit(1)을 통해 미리 결과를 단건으로 치환하고 fetchOne()을 수행한다.
- 이로 인해, fetchFirst()을 사용하게 되면 결과가 여러 건이어도 내부적으로 미리 limit(1)을 수행하여 가장 위의 한 건만 조회된다.