Frühjahr CrudRepository .orElseThrow()

Was ist der richtige Weg, um eine exception werfen wenn eine Datenbank-Abfrage leer ist? Ich versuche, die .orElseThrow() Methode, aber es wird nicht kompilieren :

Meeting meeting = meetingRepository.findByMeetingId(meetingId).orElseThrow(new MeetingDoesNotExistException(meetingId));

Der compiler sagt :

"er Methode orElseThrow(Lieferant) in das Feld Optional, ist nicht anwendbar für die Argumente (MeetingRestController.MeetingDoesNotExistException)

Ist es möglich, dies zu tun mit lambda-Ausdrücken?

CrudRepository :

import java.util.Optional;

import org.springframework.data.repository.CrudRepository;

public interface MeetingRepository extends CrudRepository<Meeting, Long>{
    Optional<Meeting> findByMeetingId(Long id);
}

Ausnahme :

@ResponseStatus(HttpStatus.CONFLICT) //409
class MeetingDoesNotExistException extends RuntimeException{
  public MeetingDoesNotExistException(long meetingId){
    super("Meeting " + meetingId + " does not exist.");
  }
}

InformationsquelleAutor szxnyc | 2014-11-04

Schreibe einen Kommentar