개발 기록
211221 til (Paging query & 예외처리) 본문
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