스프링 데이터 JPA-08.Null 처리하기(스프링 데이터 Common)
스프링 데이터 Common: Null 처리하기
스프링 데이터 2.0 부터 자바 8의 Optional 지원.
- Optional
findById(Long id);
콜렉션은 Null을 리턴하지 않고, 비어있는 콜렉션을 리턴합니다.
스프링 프레임워크 5.0부터 지원하는 Null 애노테이션 지원.
- @NonNullApi, @NonNull, @Nullable.
- 런타임 체크 지원 함.
- JSR 305 애노테이션을 메타 애노테이션으로 가지고 있음. (IDE 및 빌드 툴 지원)
인텔리J 설정
- Build, Execution, Deployment
- Compiler
- Add runtime assertion for notnull-annotated methods and parameters
- Compiler
spring의 @NonNull, @Nullable 추가해주면.
IDE의 지원을 받을 수 있다.
@NoRepositoryBean
public interface MyRepository<T, ID extends Serializable> extends Repository<T, ID> {
<E extends T> E save(@NonNull E entity); // 널이 들어오면 안됨.
List<T> findAll();
long count();
@Nullable // 리턴값이 널일수도 있다.
<E extends T> E findById(ID id);
}