Optional
Optional은 Java8 부터 도입된 클래스로 null이 아닌 값을 포함하거나 포함하지 않을 수 있는 컨테이너 객체이다.
Spring Data JPA 사용 시 Repository에서 리턴 타입을 Optional로 받을 수 있도록 지원하고
Optional을 사용하면 반복적인 Null 체크 를 줄일 수 있기 때문에 잘 사용하면 편리하고 좋다.
Mybatis를 쓰거나 Java8버전 이하로 개발하면 익숙하지 않을 수 있다.
@Override
@Transactional
public Sample updateSample(Long sampleId) {
Optional<Sample> sample = sampleRepository.findById(sampleId);
if(!sample.isPresent()) {
throw new IllegalArgumentException();
}
// 위의 코드를 orElseThrow 사용을 통해 한줄로 줄일 수 있음
...
return sample.get();
}
// TO-BE
@Override
@Transactional
public Sample updateSample(Long sampleId) {
Sample sample = sampleRepository.findById(sampleId)
.orElseThrow(IllegalArgumentException::new); .
...
return sample;
}
반응형
'백엔드 > Spring' 카테고리의 다른 글
[spring] swagger2로 API 명세서 만들기 (0) | 2022.09.28 |
---|---|
[JPA] Collection 컬렉션 (Collection, List, Set, List+@OrderColumn) (0) | 2022.09.15 |
[JPA] @Embedded, @Embeddable (0) | 2022.09.14 |
[JPA] 최범균님 <JPA 기초> 내용 정리하기 (0) | 2022.09.07 |
[java] BigDecimal 사칙연산(더하기, 빼기, 나누기, 곱하기), 비교(compareTo) (0) | 2022.05.16 |