쌓고 쌓다
Entity의 List 필드(컬렉션)는 초기화 해주자 본문
테스트 코드를 작성하던 중
NPE가 발생했다.
List<LocationImage> locationImages = location.getLocationImages();
for (LocationImage locationImage : locationImages) {
imageStore.deleteLocationImage(locationImage);
}
get 메서드를 호출하여 반환받은 List를 탐색하는 코드이다.
여기서 반환 받은 컬렉션이 NULL이라면 난 NPE가 발생하지 않고 반복문만 돌지 않을거라 생각했었다.
List를 탐색하는 로직이 존재할 수 있으니
엔티티의 List와 같은 컬렉션 필드는 new로 컬렉션을 초기화해주는 것이 좋다.
그리고 컬렉션을 초기화해주면 좋은 이유가 한가지 더 있다.
나중에 임의로 개발자가 초기화하게 된다면 하이버네이트가 관리하는 컬렉션과 달라지므로 정상적으로 동작하지 않을 수 있다는것이다.
'프로그래밍 > JPA' 카테고리의 다른 글
테스트 코드에서 DELETE 쿼리할때 a foreign key constraint fails 발생 (0) | 2024.03.17 |
---|---|
flush와 clear의 차이 (테스트 코드에서 SELECT가 안나가는 이유) (0) | 2024.03.08 |
JPA(hibernate) INSERT, UPDATE, DELETE 순서 주의사항 (1) | 2024.02.24 |
JPA findBy로 특정 범위내 숫자 컬럼 검색하는법 (0) | 2023.12.26 |
JPA의 FindBy와 FindAllBy 차이점! (+NonUnique) (0) | 2023.11.30 |
Comments