[Spring] NullPointerException

Ariul·2022년 8월 25일
0
post-thumbnail

Troubleshooting

문제

마이페이지 조회 시 Response
: 사용자 정보, 사용자가 작성한 포스트 정보, 총 게시글 수, 사용자가 받은 총 좋아요 수

게시글을 작성하지 않은 상태로 마이페이지 조회를 할 때는 문제가 없다.


여기서 게시글을 작성하면..!?
NullPointerException 발생!

HeartService의 totalHeartsByUser에 무슨 문제가..? 로직에는 문제가 없어 보이는데..?

해결 과정

아! 값 초기화 설정을 안 해서 null로 들어가 있는구나!
null 값을 sum하려고 하니까 totalHeartsByUser에서 문제가 생긴 것..!

Post post = new Post(user, requestDto, 0L);

이렇게 heartNum을 0L로 초기화하였다.

<전체 코드>

@Transactional
  public ResponseDto<?> writePost(User user, PostRequestDto requestDto, List<MultipartFile> imageFileList) {
      List<String> imageUrlList = storageService.uploadFile(imageFileList, "posts/");      //이미지 S3에 업로드
      **Post post = new Post(user, requestDto, 0L);**
      postRepository.save(post);      //게시물 db에 저장
      List<Image> collect = imageUrlList.stream().map(image -> new Image(image, post)).collect(Collectors.toList());   //String List를 Image List로 변환
      imageRepository.saveAll(collect);
      Long commentNum = commentRepository.countByPost(post);       //댓글 수 게시물id로 세서 찾기 - 게시물을 저장 먼저 해야 id가 생겨서 count 가능
      return ResponseDto.success(PostCreateResponseDto.builder()      //responseDto 돌려주기
              .post(post)
              .imageUrl(collect.get(0).getImageUrl())
              .heartNum(0L)
              .commentNum(commentNum)
              .build());
  }

그럼 이제 게시글 등록, 좋아요 기능 모두 잘 들어간다~!

회고

와 값 초기화 해야 하는 부분은 생각지도 못했는데

이번 주에 NullPointerException을 너무 많이 만나서 이제 방법을 알게 되었다.
이것도 기본 중의 기본이겠지..? ㅎㅎ
괜찮아 차곡차곡 다져가자!!!!!

profile
정성과 진심을 담아 흔적을 기록하자💡

0개의 댓글