개요
- Spring Data JPA 는 유연한 반환 타입을 지원한다.
Return Type
List<Member> findListByUserName(String userName);
Member findMemberByUserName(String userName);
Optional<Member> findOptionalMemberByUserName(String userName);
- 메소드 이름으로 쿼리를 생성하였다.
- ex) findHelloBy 처럼 …에 식별하기 위한 내용(설명)이 들어가도 된다.
조회 결과가 많거나 없으면?
- 컬렉션
- 단 건 조회
- 결과가 없다면 null 반환
- 단 건으로 지정한 메소드 호출
- Spring Data JPA 는 내부에서 JQPL 의
Query.getSingleResult() 호출
- 메서드를 호출 하였을 조회 결과가 없다면
javax.persistence.NoResultException 발생
- 이 것은 개발자 입장에서 다루기가 상당히 불편하다.
- Spring Data JPA 는 단 건을 조회할 때 이 예외가 발생하면 예외를 무시하고 null 을 반환
- 결과가 2건 이상 : javax.persistence.NonUniqueResultException 발생
Import
Spring Data JPA - Reference Documentation