쌓고 쌓다
Entity의 List 필드(컬렉션)는 초기화 해주자 본문
반응형
테스트 코드를 작성하던 중
NPE가 발생했다.

List<LocationImage> locationImages = location.getLocationImages();
for (LocationImage locationImage : locationImages) {
imageStore.deleteLocationImage(locationImage);
}
get 메서드를 호출하여 반환받은 List를 탐색하는 코드이다.
여기서 반환 받은 컬렉션이 NULL이라면 난 NPE가 발생하지 않고 반복문만 돌지 않을거라 생각했었다.

List를 탐색하는 로직이 존재할 수 있으니
엔티티의 List와 같은 컬렉션 필드는 new로 컬렉션을 초기화해주는 것이 좋다.
그리고 컬렉션을 초기화해주면 좋은 이유가 한가지 더 있다.

나중에 임의로 개발자가 초기화하게 된다면 하이버네이트가 관리하는 컬렉션과 달라지므로 정상적으로 동작하지 않을 수 있다는것이다.
반응형
'Dev Log' 카테고리의 다른 글
| [프로그래머스] 도넛과 막대 그래프 C++ 풀이 및 해설 (0) | 2024.03.09 |
|---|---|
| flush와 clear의 차이 (테스트 코드에서 SELECT가 안나가는 이유) (0) | 2024.03.08 |
| 컨트롤러에서 권한 체크하는 방법 (0) | 2024.03.07 |
| @Transactional 롤백 동작 정책 (예외가 발생했는데 롤백이 안될때) (2) | 2024.03.06 |
| [프로그래머스] 택배 배달과 수거하기 C++ 풀이 및 해설 (1) | 2024.03.01 |