개발 기록

211221 til (Paging query & 예외처리) 본문

TIL

211221 til (Paging query & 예외처리)

수염차 2021. 12. 22. 03:06
 Could not create query for public abstract org.springframework.data.domain.Page shop.fevertime.backend.repository.ChallengeRepository.findAllByChallengeProgressAndCategoryNameEquals(shop.fevertime.backend.domain.ChallengeProgress,java.lang.String)! Reason: Paging query needs to have a Pageable parameter!

 

--아주 친절한 에러 설명..

 

Page<Challenge> findAllByChallengeProgressAndCategoryNameEquals(ChallengeProgress challengeProgress, String category, Pageable pageable);

 


예외처리

-요렇게 하면 첫줄 userhistory 만들때부터 null이 들어가서 널익셉션이 터진다

ChallengeHistory userHistory = challengeHistoryRepository.findByChallengeAndUser(challenge, user);
        if (userHistory == null) {
            LocalDateTime now = LocalDateTime.now();
        }

--> 레포지토리에서 해당 함수 반환 값을 옵셔널로 줘서 .orElseThrow 로 예외처리 해주면 됨

 

근데 저렇게 해도 서버에서 익셉션이 터지고 가만있어서 값이 null일때 해줘야 하는 함수 실행이 안 되었다.

그래서 이게 정답인지는 모르겠지만 수정해봄

try {
            ChallengeHistory userHistory = challengeHistoryRepository.findByChallengeAndUser(challenge, user);
            if (userHistory.getRetryCount() >= 3) {
                throw new ApiRequestException("챌린지에 참여할 수 없습니다.");
            }
        } catch (NullPointerException e) {
            LocalDateTime now = LocalDateTime.now();
        }

try catch 문을 써서 널포인트가 터졌을때 (값이 널일때) 실행되야하는 부분을 저렇게 넣었다.

'TIL' 카테고리의 다른 글

211224 til (스케줄러)  (0) 2021.12.24
211222 til (웹소켓-실시간 알림 기능)  (0) 2021.12.23
211217 TIL (aws ACM)  (0) 2021.12.17
211216 TIL (AWS RDS 설정)  (0) 2021.12.16
211215 TIL (requestparam null로 받기)  (0) 2021.12.15
Comments