[JPA] null 처리
목차 (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 처리")
}
}
정정 · 제보
정정·제보는 댓글로 남겨 주세요.