아카이브

[스프링 데이터 JPA] 스프링 데이터 Common 3. Null 처리하기 본문

Spring/스프링 데이터 JPA

[스프링 데이터 JPA] 스프링 데이터 Common 3. Null 처리하기

주멘이 2021. 1. 16. 20:34

스프링 데이터 2.0부터 자바 8 Optional을 지원한다.

  • Collection은 Null이 아닌, 비어있는 Collection을 리턴한다.
  • Optional 인터페이스가 제공하는 메서드를 사용해서 검사할 수 있다.

Optional 메서드를 통한 검사

  • isPresent() : 값의 유무 확인
  • orElse() : 값이 없다면, 다른 인스턴스를 리턴할 수 있다.
  • orElseThrow() : 값이 없다면, 예외를 던진다.

Optional 실습 테스트

MyRepository에 Optional findById 추가하기

    @Nullable
    <E extends T> Optional<E> findById(@Nullable Id id);

 

테스트 코드

    @Test
    public void optionalTest() {
        Optional<Comment> byId = commentRepository.findById(100l);
        assertThat(byId).isEmpty(); // optional은 null을 리턴하지 않기에 empty를 체크해야 함.
    }

 

Spring 5.0 부터 지원하는 Null 어노테이션

  • 런타임 체크 지원 함.
  • @NonNullApi, @NonNull, @Nullable
  • JSR 305 애노테이션을 메타 애노테이션으로 가지고 있음. (IDE 및 빌드 툴 지원)

 

IntelliJ 설정 필요