스프링 데이터 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

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);
}





© 2019. by jaeuk