반응형
Spring Crud Repository .orelse던지다()
데이터베이스 쿼리가 빈 상태로 반환되는 경우 예외를 발생시키는 적절한 방법은 무엇입니까?저는 이 기능을 사용하려고 합니다..orElseThrow()
메서드는 컴파일되지 않습니다.
Meeting meeting = meetingRepository.findByMeetingId(meetingId).orElseThrow(new MeetingDoesNotExistException(meetingId));
컴파일러에 다음과 같이 표시됩니다.
"그 방법 OrElse"Optional 형식의 Throw(공급자)는 인수(MeetingRestController)에 적용할 수 없습니다.회의가 존재하지 않음예외)
람다 표현으로 할 수 있나요?
Crud Repository:
import java.util.Optional;
import org.springframework.data.repository.CrudRepository;
public interface MeetingRepository extends CrudRepository<Meeting, Long>{
Optional<Meeting> findByMeetingId(Long id);
}
예외:
@ResponseStatus(HttpStatus.CONFLICT) // 409
class MeetingDoesNotExistException extends RuntimeException{
public MeetingDoesNotExistException(long meetingId){
super("Meeting " + meetingId + " does not exist.");
}
}
유형의 람다 식을 전달해 보십시오.Supplier<MeetingDoesNotExistException>
:
Meeting meeting =
meetingRepository.findByMeetingId(meetingId)
.orElseThrow(() -> new MeetingDoesNotExistException(meetingId));
그 오류는 그것이 말하는 그대로입니다.
문서에는 다음 작업이 필요하다는 내용이 기재되어 있습니다.Supplier
파라미터로 지정합니다.
고객님의 예외는 다음과 같습니다.RuntimeException
(이것은,Supplier
.그러므로,orElseThrow()
는 그 인수 타입에 해당되지 않습니다.당신은 그것을 넘겨야 할 것이다.Supplier
, 가 아닙니다.RuntimeException
.
람다 식을 사용하는 것이 더 간단한 구문입니다.
언급URL : https://stackoverflow.com/questions/26727812/spring-crudrepository-orelsethrow
반응형
'programing' 카테고리의 다른 글
이것은 WordPress의 .htaccess 코드입니다.누가 설명 좀 해줄래? (0) | 2023.03.08 |
---|---|
Simple Wordpress AJAX 페이지 번호부여부 (0) | 2023.03.08 |
"No capture browser" 메시지가 표시되었기 때문에 Karma가 유닛 테스트를 실행하지 않음 (0) | 2023.03.03 |
XML 스키마(XSD)에서 Json 스키마 생성 (0) | 2023.03.03 |
반응에서 화살표 기능의 올바른 사용 (0) | 2023.03.03 |