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 및 빌드 툴 지원)