// 컬렉션
List<Member> findByUsername(String username);
// 단건
Member findByUsername(String username);
// 단건, Optional
Optional<Member> findByUsername(String username);
Spring Data JPA가 지원하는 많은 타입
참고 : 공식 문서
빈 컬렉션 반환([])
🚨주의🚨
실무에서 아래의 처럼 컬렉션 반환 결과 없는 경우를 null 체크 하는 실수 많이 발생!!List<Member> result = memberRepository.findByUsername("없는 이름"); if(result != null){ ... }
null 반환
javax.persistence.NonUniqueResultException
예외 발생참고!
단건 조회 결과 0개일 때, 순수 JPA와 Spring Data JPA의 차이
순수 JPA
getSingleResult의 결과 0개의 결과 조회시 :NoResultException 에러
발생.Spring Data JPA
단건 조회 결과 0개의 결과 조회시 :null 반환
.- 참고로 JAVA8의 Optional 등장 이후에는 null일 수도 있고 아닐 수도 있다면 무조건 Optional 사용
위에서 부터 각각 컬렉션 조회
, 단건 조회
, 단건 + optional 조회
일 때, 0개의 결과를 조회시 출력 결과