반응형
250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- Spring
- Airflow
- bootstrap
- node
- VPN
- PostgreSQL
- codedeploy
- 도커
- aws
- Spring Error
- codebuild
- aws cicd
- chartjs
- AWS CI/CD 구축하기
- SQL
- docker
- chart.js
- codedeploy error
- Python
- codepipeline
- kubeflow
- IntelliJ
- Flux
- Jenkins
- or some instances in your deployment group are experiencing problems.
- JavaScript
- redis
- Kafka
- COALESCE
- java bigdecimal
Archives
- Today
- Total
Small Asteroid Blog
[JPA] Optional 본문
728x90
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;
}
728x90
반응형
'백엔드 > 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 |