반환 타입

Mina Park·2022년 10월 8일
  • spring data jpa는 유연한 반환타입을 지원
    List<Member> findListByUsername(String username); //컬렉션(없으면 null이 아니라 empty collection로 반환
    Member findMemberByUsername(String username); //단건(없으면 null)
    Optional<Member> findOptionalByUsername(String username); //단건(없으면 null)

https://docs.spring.io/spring-data/jpa/docs/current/reference/
html/#repository-query-return-types

조회 결과가 많거나 없는 경우?

  • 컬렉션
    • 결과 없음: 빈 컬렉션 반환
  • 단건
    • 결과 없음: null 반환
    • 결과 2건 이상: javax.persistence.NonUniqueResultException 예외 발생

[참고] 단건으로 지정한 메소드를 호출하면 spring data jpa는 내부에서 JOQL의 Query.getSingleResult()를 호출 => 이 때 조회 결과가 없으면 javax.persistence.NoResultException 예외가 발생하는데 개발자 입장에서 추가적인 처리를 또 해줘야 함 => spring data jpa는 이 예외가 발생하면 예외를 무시하고 대신 null을 반환

0개의 댓글