쌓고 쌓다

Entity의 List 필드(컬렉션)는 초기화 해주자 본문

프로그래밍/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로 컬렉션을 초기화해주는 것이 좋다.

 

그리고 컬렉션을 초기화해주면 좋은 이유가 한가지 더 있다.

나중에 임의로 개발자가 초기화하게 된다면 하이버네이트가 관리하는 컬렉션과 달라지므로 정상적으로 동작하지 않을 수 있다는것이다.

Comments