Jaki jest właściwy sposób zgłaszania wyjątku, jeśli zapytanie w bazie danych wraca puste? Próbuję użyć metody .orElseThrow()
ale nie będzie skompilować:Spring CrudRepository .lubElseThrow()
Meeting meeting = meetingRepository.findByMeetingId(meetingId).orElseThrow(new MeetingDoesNotExistException(meetingId));
Kompilator mówi:
„on metoda orElseThrow (Dostawca) w rodzaju fakultatywnego nie ma zastosowania do argumenty (MeetingRestController.MeetingDoesNotExistException)
Czy można to zrobić z wyrażeń lambda?
Kr udRepository:
import java.util.Optional;
import org.springframework.data.repository.CrudRepository;
public interface MeetingRepository extends CrudRepository<Meeting, Long>{
Optional<Meeting> findByMeetingId(Long id);
}
Wyjątek:
@ResponseStatus(HttpStatus.CONFLICT) // 409
class MeetingDoesNotExistException extends RuntimeException{
public MeetingDoesNotExistException(long meetingId){
super("Meeting " + meetingId + " does not exist.");
}
}
Pracowałem! dzięki! – szxnyc