[JPA] null 처리
JPA에서 null처리 하는 방법에 대해서 알아 보자. JPA에서 단일 엔티티를 조회할 때, Optional객체를 리턴 받도록 설정되어 있다.
이 글에서 살펴볼 내용 · 4
JPA에서 null처리 하는 방법에 대해서 알아 보자.
1. Java8 Optional 처리
@Test
public void nullTest() {
Optional<Post> byId = postRepository.findById(1000l);
System.out.println(byId); // Optional.empty
// assertj를 사용
Assertions.assertThat(byId).isEmpty();
}JPA에서 단일 엔티티를 조회할 때, Optional객체를 리턴 받도록 설정되어 있다. 그렇기 때문에 데이터가 없는 값(여기에서는 id가 1000)을 조회하면 nullPointerException이 나지 않고, Optional.empty를 리턴한다.
2. Collectio에서 빈 콜렉션을 리턴함 (null 리턴하지 않음)
@Test
public void nullTest() {
List<Post> all = postRepository.findAll();
System.out.println(all); // []
Assert.assertNotNull(all);
}역시나 아무런 데이터가 없는 Post리스트를 조회했을 때. null값을 리턴 하는 것이 아닌, 비어있는 Collection를 리턴한다. 그렇기 때문에 다음과 같은 코드는 불필요하다.
public void someMethod(){
List<Post> all = postRepository.findAll();
// 불필요한 코드...........
if (all == null){
throw new Exception("exception 처리")
}
}2.1. Spring 5.xx 대 부터는 @Nullable, @NonNull 지원
3. 참고
광고 차단을 해제해 주세요
BRIEFLO는 광고 수익으로 기술 콘텐츠를 선별하고 요약합니다. 이 사이트의 광고를 허용해야 글을 계속 읽을 수 있어요.
- 광고 차단 확장 프로그램에서 이 사이트 허용을 선택해 주세요.
- 아래 버튼으로 페이지를 새로고침해 주세요.
정정 · 제보
정정·제보는 댓글로 남겨 주세요.