프로그래밍/JPA
Entity의 List 필드(컬렉션)는 초기화 해주자
승민아
2024. 3. 8. 13:45
테스트 코드를 작성하던 중
NPE가 발생했다.
List<LocationImage> locationImages = location.getLocationImages();
for (LocationImage locationImage : locationImages) {
imageStore.deleteLocationImage(locationImage);
}
get 메서드를 호출하여 반환받은 List를 탐색하는 코드이다.
여기서 반환 받은 컬렉션이 NULL이라면 난 NPE가 발생하지 않고 반복문만 돌지 않을거라 생각했었다.
List를 탐색하는 로직이 존재할 수 있으니
엔티티의 List와 같은 컬렉션 필드는 new로 컬렉션을 초기화해주는 것이 좋다.
그리고 컬렉션을 초기화해주면 좋은 이유가 한가지 더 있다.
나중에 임의로 개발자가 초기화하게 된다면 하이버네이트가 관리하는 컬렉션과 달라지므로 정상적으로 동작하지 않을 수 있다는것이다.